2

当我尝试从相机胶卷加载照片时。我收到以下消息:

Error #3683: Texture too big (max is 2048x2048).

以下代码是我与 Feathers/Starling 一起使用的代码:

var Image_Loader:ImageLoader = new ImageLoader();
Image_Loader.source = url;
addChild(Image_Loader);

我一直在阅读我需要将照片转换为位图然后调整它的大小。这是我需要帮助的时候。为了完成这项工作,我对位图或位图数据一无所知。谁能指出我正确的方向或为此建议一些好的教程/链接。

4

2 回答 2

2

我找到了一个帖子,并弄清楚了我想要完成的事情。加载对于我正在使用的当前尺寸屏幕来说太大的图像/照片,然后将其缩小以免出错。而不是使用 ImageLoader。只需将纹理直接添加到舞台,但首先调整它的大小。

        var URLReq:URLRequest = new URLRequest("Image URL");
        var imageLoader:Loader = new Loader();

        imageLoader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, loadBit);

        imageLoader.load(URLReq);
        var myBitmap:Bitmap = new Bitmap();

        function loadBit(event:flash.events.Event):void
        {
            myBitmap = Bitmap(imageLoader.content);

            var texture:Texture = Texture.fromBitmap(myBitmap);
            var image:Image = new Image(texture);
            image.width = image.height = 300;
            addChild(image);}
于 2013-12-18T13:24:00.557 回答
0

您的问题似乎是您尝试加载的位图的大小太大了。

当 Flash 加载文件时,它会将其在 bitmapDataObject 中写入的内容限制为任何形状的 2048x2048 像素。这意味着总共有 4194304 个像素。您的 x/y 尺寸并不重要。您必须确保您的图像小于导入前的图像(使用 Windows 资源管理器查看您的图像文件或在 OSX 上预览,它会告诉您像素尺寸)将这两个数字相乘,看看您得到的数字是高于还是低于 4194304 . 如果它在上面,并且可能是由于您的错误,您必须使用预览、photoshop、paint 等工具手动对其进行编辑,使其尺寸等于或小于 4194304。

于 2013-12-17T18:07:43.833 回答