|
JAVA Micro Edition Низкоуровневое программирование мобильных телефонов. |
13.08.2008, 04:13
|
#16
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
b.java:38: code too large
public static void R() throws Exception{
^
1 error
Это что? Типа код слишком длинный? Что делать? Это я картинку 160x138 заюзал... А если не bmp и с прозрачностью надо, то твоя прога не сможет сделать?
- - -
Сделал картинку в четыре раза меньше, всё создало, откомпилировало, но мидлет не запускается. Эмулятор сразу при попытке запуска закрывается. Видимо, мы к решению этого вопроса неправильно подошли... Каким-то образом ведь делают так. Пойду декомпильну что-нибудь, может поможет =)
Последний раз редактировалось Phantom, 13.08.2008 в 04:23.
|
(Offline)
|
|
13.08.2008, 09:01
|
#17
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
У меня появилась другая идея =) Как можно считать картинку из файла и преобразовать в объект Image?
|
(Offline)
|
|
13.08.2008, 13:09
|
#18
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Сообщение от Phantom_wc
У меня появилась другая идея =) Как можно считать картинку из файла и преобразовать в объект Image?
|
Я в своей библиотеке делал так:
import java.io.*; import javax.microedition.lcdui.Image; import javax.microedition.io.*; class Lib_imloadjsr75 { public static Image img; public static Image loadimage(String filename) { try { FileConnection con = (FileConnection) Connector.open("file://" + filename, Connector.READ); InputStream IS = con.openInputStream(); img = Image.createImage(IS); IS.close(); con.close(); } catch (Exception ex) {} return img; } }
А вообще, зачем хранить изображения в классах?
Кстати, есть еще вариант: закодировать бинарник PNG чем-нибудь в роде base64 и записать как строковую константу. Места будет занимать мало, только декодировать обратно придется.
|
(Offline)
|
|
13.08.2008, 14:11
|
#19
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
Изображения хочу хранить в классе, чтобы достать их оттуда было непросто =) Ща думаю просто записать в один файл все картинки по очереди без префиксов, а после считать файл из класса, отделить все картинки одну от другой, приделать к каждой префикс, который убрал до записи в файл и создать объект Image.
Твой способ, вроде, не пройдёт... Я половину функций из твоего примера не знаю, но, как я понял, у тебя из потока как бы объект создаётся. К нему, наверно, не получится добавить префикс... Префикс - это, грубо говоря, набор байт или строка. Вот. Что посоветуешь?
|
(Offline)
|
|
13.08.2008, 14:44
|
#20
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Тогда так:
FileConnection con = (FileConnection) Connector.open("file://" + filename, Connector.READ); InputStream IS = con.openInputStream(); byte[] im=null; IS.read(im);//читаем данные в массив байт //здесь делаем с массивом байт что угодно img=Image.createImage(im,0,im.length);//создаем Image из массива im
Вот. читаем данные в массив, а дальше изменяем его, как надо.
Потом создаем из него Image.
А если уж очень надо спрятать, тогда лучше шифровать чем-нибудь.
|
(Offline)
|
|
13.08.2008, 15:06
|
#21
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
Ну base64 открытый алгоритм, кто угодно на вид сразу догадается попробовать обратить. Да и от шифрования скорость упадёт. Спрятать нужно не особо. Защиты от дурака хватит =) Попробую с массивом байт.
|
(Offline)
|
|
13.08.2008, 15:24
|
#22
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Сообщение от Phantom_wc
Спрятать нужно не особо. Защиты от дурака хватит =)
|
Ну так тогда PNG задом наперед перевернуть, так многие делают. Мне самому когда такое попалось, я не сразу додумался его HEX-редактором просмотреть. И только когда просмотрел - увидел, что файл задом наперед переписан.
|
(Offline)
|
|
13.08.2008, 15:24
|
#23
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
b.java:49: cannot find symbol
symbol : class FileConnection
location: class b
FileConnection con=(FileConnection)
^
b.java:49: cannot find symbol
symbol : class FileConnection
location: class b
FileConnection con=(FileConnection)
^
2 errors
- - -
Хы, тут тема где-то про картинки в файлах есть, моё сообщение последнее. Я подошёл к расшифровке картинок с полной ответственностью =)
О_о
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.08.2008, 15:33
|
#24
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Этому коду нужен класс javax.microedition.io.file.FileConnection
|
(Offline)
|
|
13.08.2008, 15:42
|
#25
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
import javax.microedition.io.*; я написал. Не работает. Не может же быть, что... Что у меня его в компиляторе НЕТ О_о ???
|
(Offline)
|
|
13.08.2008, 17:41
|
#26
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Скорее всего, нет пакета JSR75 API.
Хотя стоп. Имеется в виду чтение из внешнего файла или из ресурса?
|
(Offline)
|
|
13.08.2008, 18:53
|
#27
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Хранение картинок в классах
еще один из способов, замена заголовка %PNG на другие символы или просто удаление, тогда практически все просмотрщики пасуют.
|
(Offline)
|
|
13.08.2008, 19:12
|
#28
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Хранение картинок в классах
Немного не по теме, кто знает, чем редактировать изображения в формате *.bsprite? Не помню, в какой игрушке я это видел, если вспомню, выложу линк.
|
(Offline)
|
|
14.08.2008, 01:14
|
#29
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Сообщение от Romanzes
Немного не по теме, кто знает, чем редактировать изображения в формате *.bsprite? Не помню, в какой игрушке я это видел, если вспомню, выложу линк.
|
Похоже какой-то нестандартный формат.
Скорее всего, либо RAW-данные наподобие BMP, либо сжатые данные, наподобие ZIP. Увидеть бы сам файл.
|
(Offline)
|
|
14.08.2008, 09:11
|
#30
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
Хотя стоп. Имеется в виду чтение из внешнего файла или из ресурса?
|
Из ресурса, конечно =) Зачем мне зашифрованные картинки с диска читать? гг
еще один из способов, замена заголовка %PNG на другие символы или просто удаление, тогда практически все просмотрщики пасуют.
|
Я хочу убрать больше даже, там префикс у png длиннее, который одинаковый у всех png'шек. А ещё с конца можно несколько байт удалить (по ним тоже можно догадаться, что это png).
- - -
Зацените, какое я тут расследование провёл:
http://forum.boolean.name/showthread...newpost&t=2086
А то обидно, я часа полтора ковырялся, а никто даже не отписался =(
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:39.
|