Двоичный массив JSON для изображения в Java - PullRequest
0 голосов
/ 17 июня 2011

Я использую службу .NET json, которая выводит байтовый массив.Массив байтов преобразуется в целочисленное представление каждого байта.При просмотре в Fiddler это выглядит так:

{"imageBackground": [137,80,78,71,13,10,26,10,0,0,0,13,73,72,68, ...]}

В Java я вернул данные в JSONObject, но я не знаком с Java, поэтому не уверен, куда идти, чтобы преобразовать это во что-тогодные к употреблению.Я подозреваю, что если я смогу вернуть его в какой-то поток, я смогу сделать его видимым как изображение (PNG / JPG / и т. Д.) ...

Есть ли здесь какие-либо советы?

Ответы [ 2 ]

2 голосов
/ 17 июня 2011

Получите imageBackground в виде байтового массива, а затем передайте его ImageIO :

byte[] imageBackground = // set me here;
ByteArrayInputStream input = new ByteArrayInputStream(imageBackground);
try {
    BufferedImage ImageIO.read(input);
    // do fun stuff with the image...
}
finally {
    input.close();
}

Я не уверен, что ваше приложение хочет сделать как изображение,но когда у вас есть BufferedImage, вы можете использовать ImageIO для преобразования его в другой тип, вы можете делать преобразования, выводить в файл ... небо - предел.Вы можете найти учебник для этого и многое другое на Google.

0 голосов
/ 20 июня 2011

Примерно так (имена методов, вероятно, неверны, я не знаю их по макушке)

JSONArray jBytes = theObject.getArray("imageBackground");
byte[] imData = new byte[jBytes.size()];
for (int i = 0; i < jBytes.size(); i++) {
   imData[i] = jBytes.get(i);
}

Вот так вы и сделаете его настоящим байтовым массивом.Тогда делай то, что отправил stevevls, или как хочешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...