【问题标题】:Advanced Image cropping and image resizing in FlexFlex 中的高级图像裁剪和图像大小调整
【发布时间】:2011-08-12 23:47:12
【问题描述】:

我使用核心 copyPixel 方法在 flex 中创建了一个图像裁剪工具。

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

我必须裁剪 20*20 的 dementions 区域,并在 demention 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?

【问题讨论】:

  • 我认为,如果您拍摄 20x20 的位图图像并将其扩展为 250x350,您将不得不预期会出现一些失真。如果您保持相同的纵横比(250x250 或 350x350),它可能会更少,但可能不会太多。现实世界中的图像处理不像电视上那样,您可以在电视上放大、锐化图像,然后“看到”错综复杂的细节,例如窗口中的面部反射可以揭示凶手的身份。

标签: apache-flex resize crop bitmapdata smooth


【解决方案1】:

您所说的“失真”可能就是我认为您所说的像素化的意思。该网站可以在没有像素化的情况下放大的原因是因为它使用矢量形状而不是位图来显示图形。矢量形状可以无限缩放而不会损失质量,因为它不存储像素信息,而是样条信息。

本质上,如果你想模仿你展示的网站的缩放,你将不得不创建自己的矢量形状。您可以使用Flex 4's built in FXG format 或使用类似Degrafa(如果您仍在使用 Flex 3)。您还可以利用Flash Catalyst 将在 Illustration 中制作的矢量图形导入 Flex。

【讨论】:

  • flex 3 中如何将 png 或 jpg 图像转换为矢量。在 Flex 3 中可以吗?
  • 这不是 Flex 的限制,而是图像工作原理的限制。您不能将位图图像转换为矢量。您必须使用 illustrator(或一些基于矢量的工具)重新创建它,否则您会被位图困住,您能做的最好的事情就是放大和平滑它,但质量充其量只是“meh”。
【解决方案2】:

我不确定,但它是在VectorMagic 完成的,可能他们也以任何方式使用服务器端,您可能也对Actionscript SVG renderer 感兴趣

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多