|
|
|||||
Регистрация: Sep 2013
Сообщений: 1
|
Огромный BitmapData
public static var i:int = 0; public static var j:int = 0; public function print(e:Event = null):void { try { var raw:BitmapData = new BitmapData(4000, 3000); var brr:ByteArray; raw.draw(SW12.webMap, new Matrix(1, 0, 0, 1, Config.sizeX - i * 4000, Config.sizeY - j * 3000)); brr = PNGEncoder.encode(raw); new FileReference().save(brr, "x" + i + "y" + j + ".png"); i ++; if (i == 8) { i = 0; j ++; } if (j == 8) { j = 0; } } catch (e:Event) { } } Если не обойти, то как обойти на яве аналогичное ограничение у буфередимадж? Код явы: try{ BufferedImage read; BufferedImage result = new BufferedImage(32000,24000,BufferedImage.TYPE_INT_RGB); for(int x=0; x < 8; x ++) { for(int y=0; y < 8; y ++) { read = ImageIO.read(new File("c:\\temp\\1\\x"+x+"y"+y+".png")); result.getGraphics().drawImage(read,x * 4000, y * 3000,null); } } ImageIO.write(result,"png",new File("c:\\temp\\1\\result.png")); }catch(Exception e){ e.printStackTrace(); } |
|
|||||
Скорее всего придется выбрать другую технологию т.к. сами ограничения заложены в технологию.
Еще зависит от задачи. Может как то можно разбивать изображения на части и потом склеивать при необходимости. |
|
|||||
Цитата:
Но с другой стороны, это как раз и должно настораживать, так как конфигурация устройства, на котором это будут открывать может быть самой разной. Нужно архитектуру приложения пересмотреть. Чтобы там не было необзодимости делать такой большой растр. п.с. Цитата:
Вместо двойного слеша нужно использовать File.separator, а пути брать из переменных среды системы, либо прописывать в конфиг файлы
__________________
Ко мне можно и нужно обращаться на ты) |
Часовой пояс GMT +4, время: 05:38. |
|
« Предыдущая тема | Следующая тема » |
|
|