嘿傢伙希望有人可以幫助這裏。我裁剪的位圖圖像到使用下面的函數瓦片:AS3 - 製作一個新的非整合寬度和高度的位圖數據
function crop(_x:Number, _y:Number, _width:Number, _height:Number, callingScope:MovieClip, displayObject:DisplayObject = null, pixelSnapping:Boolean = false):Bitmap
{
var cropArea:Rectangle = new Rectangle(0, 0, _width, _height);
var croppedBitmap:Bitmap;
if(pixelSnapping == true)
{
croppedBitmap = new Bitmap(new BitmapData(_width, _height), PixelSnapping.ALWAYS, true);
}
else
{
croppedBitmap = new Bitmap(new BitmapData(_width, _height), PixelSnapping.NEVER, true);
}
croppedBitmap.bitmapData.draw((displayObject!=null) ? displayObject : callingScope.stage, new Matrix(1, 0, 0, 1, -_x, -_y) , null, null, cropArea, true);
return croppedBitmap;
}
的寬度和高度在被傳遞是一個非整數值,例如18.75。當創建新的BitmapData時,它始終將值舍入爲一個整數,因爲BitmapData的參數是這樣鍵入的。在我這裏需要的情況下,寬度和高度不可能是整數。有沒有辦法以我需要的確切寬度和高度創建另一幅圖像的這些位圖片段,或者只能使用高度和寬度的整數值創建新的bitmapData?
感謝您的任何見解。
編輯:我意識到你不能有一個像素的一小部分,但是......我試圖實現的是將圖像分成瓷磚。我想瓷磚的數量是可變的,比如說4行4列,或者6行8列。將圖像劃分爲X個部分導致寬度和高度在大多數情況下是非整數值,例如18.75。我們的目標是將圖像分成多個圖塊,然後將圖像以無縫方式出現在源圖像上方,然後在這裏爲各種目的(益智遊戲,平鋪動畫到新場景等)操縱各個圖塊。我需要圖像,當從所有的瓷磚碎片組裝而成時,是原始圖像的精確副本,瓷磚之間沒有線條,或任何地方有白色邊緣,我需要這種情況發生在非整數寬度和高度的bitmapData塊包含瓷磚。這有道理嗎? O_o
的BitmapData組成像素。確切的像素數量是寬度*高度。像素是一個色點。 BitmapData不是關於可視元素的。這是關於如何將視覺元素存儲在內存中。不能有一半的信息量。請解釋你試圖達到的目標,以便我們提供更好的解決方案。 –
編輯我的答案來回答你編輯的問題 – Creynders
既然沒有可以分割的神奇公式,比如說5除以2而沒有餘數,那麼你將不得不進行填充,裁剪或縮放圖像,以使整數數學運算出來。當然,這不會是一個確切的副本。 –