Как получить данные изображения PNG в виде декодированного байтового массива с использованием GWT? - PullRequest
0 голосов
/ 03 августа 2011

Используя GWT, я хотел бы прочитать изображение в формате PNG и получить доступ к данным в виде декодированного массива байтов.

На стороне клиента я получаю изображение с помощью ImageBundle, затем создаю экземпляр Image и вызываю setUrl.

На этом этапе, как получить байтовый массив изображения из изображения?

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Я не уверен, что нет кросс-браузерного способа получить байтовый массив изображения, потому что мы все-таки в JavaScript. Вы можете создать новый элемент canvas, добавить изображение в canvas.context2D и прочитать атрибут canvas.context2D.data, чтобы получить массив со значениями RGBA для каждого пикселя.

Похоже, gwt поддерживает элемент canvas в последней версии, поэтому вы можете заархивировать его на чистом Java: http://google -web-toolkit.googlecode.com / SVN / Javadoc / последний / COM / Google / GWT / холст / дом / клиент / ImageData.html

1 голос
/ 03 августа 2011

Прошло много времени с тех пор, как я выполнял непосредственный ввод / вывод файлов в Java, но вот кое-что из моего старого кода:

InputStream in = this.getClass().getResourceAsStream("/com/path/to/file.png");
ByteArrayOutputStream out = new ByteArrayOutputStream();
int readByte = 0;
while ((readByte = in.read()) != -1) {
    out.write(readByte);
}
out.flush();
byte[] bytes = out.toByteArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...