【问题标题】:Loader won't load large images加载器不会加载大图像
【发布时间】:2011-09-11 23:13:56
【问题描述】:

我有一些非常大的 PNG 图像存储在数据库中(例如 1000x15000 像素,4.5MB)。我正在尝试使用 Loader 类加载它......我遇到的问题是当我调用 load() 时,没有任何反应。没有事件,没有错误。

我可以拍摄相同的图像并将其嵌入。只要我将高度设置为小于 8000 像素,它就可以正常工作。如果我将嵌入的图像转换为 ByteArray 并尝试加载它,则没有任何反应。

有什么建议吗?

【问题讨论】:

  • 为什么要将图像存储在数据库中?更不用说大图像了。并回答您的问题,图像是大闪存会崩溃。

标签: flash apache-flex actionscript-3


【解决方案1】:

在 AIR 1.5 和 Flash Player 10 中, BitmapData 对象的最大大小 宽度或高度为 8,191 像素, 并且总像素数不能 超过 16,777,215 像素。 (所以,如果一个 BitmapData 对象为 8,191 像素 宽,只能是 2,048 像素 高。)在 Flash Player 9 和更早版本中 和 AIR 1.1 及更早版本, 高度限制为 2,880 像素 和 2,880 宽。

来源:flash.display.BitmapData

【讨论】:

  • 对了,有没有办法把它全部加载到闪存中呢?我不需要它的全尺寸,即使我可以显示它的一半尺寸也很好,但问题是我什至无法加载它来缩小它。
  • 15,000 像素宽的图片资源有点荒谬。我假设您正在尝试处理具有高打印分辨率的照片,也许是为了显示预览?如果不需要自动化,那么最好的办法是使用 Photoshop 往返并手动制作自己的缩略图,否则我唯一能想到的是将图像资产的内容加载到 ByteArray 中,然后创建一个较小的位图对象使用一些缩略图算法表示大图像资产。
【解决方案2】:

嗯,看起来没有办法绕过 Flash 限制。我最终做的是编写一个非常简单的 servlet 来提供图像,然后在 HTML 组件中显示图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 2017-04-07
    • 1970-01-01
    • 2021-05-25
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多