2

当我尝试从相机胶卷加载照片时。我得到以下信息:羽毛/椋鸟/ AS3 /空气 - 纹理太大(最大为2048x2048) - 相机胶卷

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

下面的代码是我使用的是什么羽毛/德裕:

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

我一直在读,我需要将照片转换成位图,然后调整它的大小。这是我需要帮助。我不知道任何有关位图或位图数据的信息,以使其工作。任何人都可以指出我正确的方向或建议一些很好的教程/链接。

回答

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);} 
0

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

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

+0

如果你想看到如何做到巨大的纹理贴图:http://mrl.cs.vsb.cz/people/gaura/agu/05-JP_id_Tech_5_Challenges.pdf。让我想知道在stage3d下这是否可能。它已经可以在webGL中完成了。 – Levantulee