|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.07.2016, 13:36 | #1 |
Регистрация: 20.02.2015
Сообщений: 8
|
прочитать PNG-файл
Есть картинка, записанная в формате PNG.
Мне надо "выудить" из неё информацию... Но сложности возникли уже при чтении первого символа: вместо ожидаемого 89 50 4e 47 0d 0a 1a 0a получаю fffd 50 4e 47 d a 1a a Код:
Возможно надо сменить кодировку консоли, тогда можете подсказать, как в IntelliGIDEA её поменять? Или это можно сделать программно? |
11.07.2016, 14:08 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Код:
|
11.07.2016, 14:35 | #3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
файл дай
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
11.07.2016, 16:13 | #4 | |
Регистрация: 20.02.2015
Сообщений: 8
|
Да, любой png-файл пойдёт. Мне нужен этот:
Попробовала так: Код:
-119 80 78 71 13 10 26 10 Если верить http://wiki.metrotek.spb.ru/wiki/PNG...File_signature, то первые 8 байт png-файла должны быть такими: Цитата:
Последний раз редактировалось Alex11223; 11.07.2016 в 17:33. |
|
11.07.2016, 16:45 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
byte не unsigned, и 137 больше 128.
А зачем кому-то верить когда можно самому посмотреть файл любым hex-редактором?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.07.2016, 17:02 | #6 |
Регистрация: 20.02.2015
Сообщений: 8
|
Смотрела при помощи XVI32, там: 89 50 4e 47 0d 0a 1a 0a - т.е. всё сходится.
Чего-то главного я не понимаю... |
11.07.2016, 17:05 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Сказал же, в Java byte не unsigned.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.07.2016, 17:22 | #8 |
Регистрация: 20.02.2015
Сообщений: 8
|
Т.е. читать файл в массив byte[] нельзя, т.к. мы выходим из диапазона допустимых значений... я правильно поняла?
Тогда игнорируем совет, который дал p51x, и возвращаемся к первому посту. |
11.07.2016, 17:31 | #9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Код:
см. Primitive Data Types тип byte в Java принимает значения -128 до 127 (включительно). поэтому его нужно преобразовать в int (код нашёл поиском по "java unsigned byte") |
|
11.07.2016, 17:31 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Можно, байты не меняются от того как на них смотрите.
Если надо конвертировать в unsigned, то например есть Byte.toUnsignedInt (Java8+)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++. Прочитать файл и вывести в другой файл каждую N-ую строку | Straiker | Помощь студентам | 3 | 15.12.2009 05:49 |
Загрузить png файл | MAcK | Мультимедиа в Delphi | 1 | 22.12.2008 22:23 |
Прочитать png формат в image | Sin3v | Общие вопросы Delphi | 1 | 18.07.2008 11:45 |
как прочитать файл | бодяга | Общие вопросы Delphi | 1 | 09.09.2007 20:37 |