Feathers / Starling / AS3 / Air - 纹理太大(最大为2048x2048) - 相机胶卷

时间:2013-12-17 14:02:52

标签: actionscript-3 bitmap bitmapdata starling-framework camera-roll

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

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

以下代码是我在Feathers / Starling中使用的代码:

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

我一直在阅读,我需要将照片转换为位图然后调整大小。这是我需要帮助的。我对bitmap或bitmapdata一无所知,以使这项工作成功。任何人都可以指出我正确的方向或建议一些很好的教程/链接。

2 个答案:

答案 0 :(得分: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);}

答案 1 :(得分:0)

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

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