У меня просто была такая же проблема с моим MIDLET, и проблема в моем случае заключалась в заголовке HTTP, который идет вместе с изображением JPEG, которое я читал из InputStream сокета. И я решил это, найдя маркер SOI JPEG, который идентифицируется двумя байтами: FFD8
в моем байтовом массиве. Затем, когда я нахожу местоположение FFD8
в моем байтовом массиве, я обрезаю начальные байты, которые представляют заголовок HTTP, и затем я могу вызвать createImage()
без каких-либо исключений ...
Вам следует проверить, так ли это с вами. Просто проверьте, действительно ли это (temp[0] == 0xFF && temp[1] == 0xD8)
, и если это не так, обрежьте начало temp
, чтобы удалить заголовок HTTP или другой мусор ...
приписка
Я предполагаю, что вы читаете изображение JPEG, если нет, поищите соответствующий заголовок в массиве temp
.
Также, если это не помогает, и вы читаете JPEG-изображение, убедитесь, что массив начинается с FFD8
и заканчивается FFD9
(который является маркером EOI). И если это не заканчивается ВЗ, просто обрежьте конец, как я объяснил для СОИ ...
P.P.S
И если вы обнаружите, что данные в temp
действительны, то ваша платформа не сможет декодировать изображения JPEG, или изображение в temp
слишком велико для декодера JPEG.