2

Когда я пытаюсь загрузить фотографию из Camera Roll. Я получаю следующее сообщение:Перья/Старлинг/AS3/Воздух - слишком большая текстура (макс - 2048x2048) - Camera Roll

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

Следующий код, что я использую с Перья/Starling:

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

Я читал, что мне нужно, чтобы преобразовать фотографию в растровое изображение и затем измените его размер. Это была мне нужна помощь. Я ничего не знаю о bitmap или bitmapdata, чтобы сделать эту работу. Может ли кто-нибудь указать мне в правильном направлении или предложить хороший учебник/ссылки для этого.

ответ

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 Если это указано выше, и это, вероятно, связано с вашей ошибкой, вы должны вручную отредактировать ее с помощью инструмента, такого как предварительный просмотр, фотошоп, краска и т. Д., Чтобы иметь размеры, которые дают вам значение, равное или меньшее, чем 4194304.

+0

Если вы хотите увидеть, как сделать ОГРОМНЫЕ текстурные карты: http://mrl.cs.vsb.cz/people/gaura/agu/05-JP_id_Tech_5_Challenges.pdf. Заставляет меня задаться вопросом, возможно ли это на этапе stage3d. Это возможно и сделано в webGL уже. – Levantulee