2011-04-26 194 views
1

我使用核心copyPixel方法在flex中創建了圖像裁剪工具。Flex中的高級圖像裁剪和圖像調整大小

croppedBitmapData.copyPixels(croppedBitmapData,clipCan,new Point(0,0));

我必須將皺紋面積20 * 20進行皺褶處理,並以250 * 350的浮雕圖像顯示此裁剪區域。每一件事都很順利。 我的問題是圖像失真。

即使我正在使用此方法平滑完成圖像內容。

private function smoothImage(event:Event):void 
{ 
    var bitmap: Bitmap = ((event.target as Image).content as Bitmap); 
    if (bitmap != null) 
    { 
    bitmap.smoothing = true; 
    } 
} 

我想得到本網站的結果。 http://www.yourplayingcards.com/builder/

請幫我弄一下圖像失真。

 Can we show bitmapdata of 20*20 into image of 250*350 without distotion? 
+0

我認爲,如果你把一個20×20一塊位圖圖像,並將其展開爲250x350,您將不得不期待一些失真。如果保持相同的寬高比(250x250或350x350),但可能不會太多。真實世界中的圖像操作並不像電視上的那樣,您可以放大,銳化圖像,然後「查看」複雜的細節,例如窗口中的臉部反射,以顯示兇手的身份。 – JeffryHouser 2011-04-26 12:04:12

回答

1

你稱之爲'失真'可能是我認爲你的意思是像素化。該網站可以放大而沒有像素化的原因是因爲它使用矢量形狀而不是位圖來顯示圖形。矢量形狀可以無限地縮放而不會丟失質量,因爲它不存儲像素信息,而是存儲樣條信息。

從本質上講,如果你想模擬你所顯示的網站的縮放,你將不得不創建你自己的矢量形狀。如果您仍然在Flex 3中,則可以使用Flex 4's built in FXG format或使用Degrafa之類的東西。您還可以利用Flash Catalyst將插圖中生成的矢量圖形導入到Flex中。

+0

我們如何將png或jpg圖像轉換爲flex中的矢量3. Flex 3中可能嗎? – Murtaza 2011-04-27 11:17:00

+0

這不是Flex的限制,而是圖像工作原理的限制。您不能將位圖圖像轉換爲矢量。你必須使用插畫(或一些基於矢量的工具)來重新創建它,或者你被位圖卡住了,你可以做的最好的事情就是擴大和平滑它,但質量最好是'meh'。 – 2011-04-27 12:23:20

+0

Degrafa:https://code.google.com/p/degrafa/ – 2015-01-27 13:58:33