2011-04-26 196 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