![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.02.2015
Сообщений: 8
|
![]()
Есть картинка, записанная в формате PNG.
Мне надо "выудить" из неё информацию... Но сложности возникли уже при чтении первого символа: вместо ожидаемого 89 50 4e 47 0d 0a 1a 0a получаю fffd 50 4e 47 d a 1a a Код:
Возможно надо сменить кодировку консоли, тогда можете подсказать, как в IntelliGIDEA её поменять? Или это можно сделать программно? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
файл дай
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#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. |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
byte не unsigned, и 137 больше 128.
А зачем кому-то верить когда можно самому посмотреть файл любым hex-редактором?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 20.02.2015
Сообщений: 8
|
![]()
Смотрела при помощи XVI32, там: 89 50 4e 47 0d 0a 1a 0a - т.е. всё сходится.
Чего-то главного я не понимаю... |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Сказал же, в Java byte не unsigned.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 20.02.2015
Сообщений: 8
|
![]()
Т.е. читать файл в массив byte[] нельзя, т.к. мы выходим из диапазона допустимых значений... я правильно поняла?
Тогда игнорируем совет, который дал p51x, и возвращаемся к первому посту. |
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Код:
см. Primitive Data Types тип byte в Java принимает значения -128 до 127 (включительно). поэтому его нужно преобразовать в int (код нашёл поиском по "java unsigned byte") |
|
![]() |
![]() |
![]() |
#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 |