Page 2 of 4
Re: Вопросы по разработке
Posted: Fri Aug 19, 2011 11:05 am
by XVilka
Gluk: +1 к номерам иконок вместо имен файлов, хотя именованные все-так лучше.
например:
file-manager_kfar.png ; text-editor_tinypad.png l code-lang_tinypy.png
И прочее в том же духе.
Re: Вопросы по разработке
Posted: Mon Aug 22, 2011 1:54 pm
by maximYCH
Может ли мне кто-нибудь рассказать, как правильно пользоваться libimg?
Делаю следующее:
Code: Select all
...
draw_window:
...
invoke img.decode, image_data, image_data.sizeof
mov [image_data], eax
invoke img.to_rgb, eax
mov [rgb_img], eax
invoke img.draw, [rgb_img], 1, 1, 24, 24, 25, 25
ret
...
@IMPORT:
library \
libio,'libio.obj',\
libgfx,'libgfx.obj',\
libimg , 'libimg.obj',\
fontslib,'fonts_lib.obj'
...
import libimg , \
libimg.init , 'lib_init' , \
img.is_img , 'img_is_img' , \
img.to_rgb , 'img_to_rgb' , \
img.decode , 'img_decode' , \
img.flip , 'img_flip' , \
img.rotate , 'img_rotate' , \
img.draw , 'img_draw'
...
; <--- DATA --->
image_data:
file 'file_new.png'
.sizeof = $ - image_data
Сабж успешно компилируется, запускается, рисуется окно, но видимо сразу, как только доходит до какого-то из этих блоков кода - вылетает
Re: Вопросы по разработке
Posted: Mon Aug 22, 2011 3:22 pm
by CleverMouse
Ну зачем img.to_rgb? Тебя не устраивает внутреннее представление libimg, подстраиваемое под конкретный файл? А libimg не устраивает подсунутый ей вместо изображения массив rgb.
Re: Вопросы по разработке
Posted: Mon Aug 22, 2011 3:28 pm
by dunkaist
Прикрепил пример, выводящий часть файла iconstrp.gif. Там немного кода, сравни со своим.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 7:54 am
by maximYCH
dunkaist, я поразбирался и таки вывел изображение. За код спасибо.
Единственное, как я понял, прозрачные png не поддерживаются. Ладно, фиг с ним.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 11:06 am
by maximYCH
У меня есть подозрение, что одно из утверждений истинно:
1) Графические файлы, вышедшие из пасти Фотошопа каким-то магическим образом коверкают исполняемый файл.
ИЛИ
2) Большие графические файлы каким-то магическим образом коверкают исполняемый файл.
Утверждения основаны на попытке вывести файл, приложенный к сообщению с помощью libimg, файл подключается как внутренний через выше обозначенный
Code: Select all
image_data:
file 'logo.png'
.sizeof = $ - image_data
Смысл в том, что update.png, приложенный к этому сообщению и скачанный с Интернета выводится вполне успешно (единственное - черный фон с шумами вместо прозрачного, что досадно). А вот logo.png (ровно, как и logo.jpg), созданный за пару минут в Фотошопе делают программу не исполняемой (@notify выводит, что файл не является исполняемым).
Может быть у кого-нибудь имеются соображений, почему такое может происходить?
P.S. Не бейте меня, пожалуйста, если ответ лежит на поверхности

Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 1:42 pm
by Mario
Судя по тому что KIV и zSea (который не пользуется libimg, а использует собственные плагины) отображают нормально, то тебе разбирайся в твоем хитром коде.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 2:11 pm
by dunkaist
maximYCH wrote:Единственное, как я понял, прозрачные png не поддерживаются.
Это как сказать. Декодирование и работа с ними (повороты, отражения) поддерживаются на равне с непрозрачными. Но для вывода с альфа каналом нужно прочитать картинку из области окна, куда ты собираешься вывести изображдение, наложить одно на другое и только потом рисовать в окне. Libimg этого не делает.
И я не понял, зачем ты пихаешь изображения в исполняемый файл.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 2:17 pm
by maximYCH
Да, я разобрался ещё до этого, убрал кое-что лишнее.
Изображения я упаковываю в kex исключительно потому, что мне так нравится (привык я, что ресурсы программы внутри нее). Если имеются какие-либо причины так делать я готов их выслушать.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 5:23 pm
by s1n
Банальный пример это легкая возможность модифицировать внений вид программы(перерисовать иконки например). Программисту это сделать легко можно, а вот например дизайнеру разбираться с сборкой из исходников, ради того чтобы изменить иконку - както тяжело. Имхо.
И да. На случай использования этого ресурса в других программах в итоге уменьшит общий размер программы(куча программ с вшитыми ресурсами больше места занимают программ без ресурсов, но использующие один и тот же ресурс с носителя)
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 5:53 pm
by maximYCH
Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Что же до общих ресурсов, то тут я могу представить использование иконок для расширений файлов, но что ещё, кроме них? По поводу общих иконок расширений файлов ничего против не имею и даже всеми руками за, в этом смысле я за стандартизацию.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 6:26 pm
by Freeman
maximYCH wrote:Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Такому автору можно посоветовать
не выёживаться искать самовыражение в другом месте, ибо не пользователь для программ, а программы для пользователя.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 6:46 pm
by Mario
Freeman
Не совсем верно - автор герой, царь и творец. Его мнение первично. Использовать или нет пользователю это не проблема автора. Естественно в плане объективности он может прислушаться к отдельным советам, а может и не прислушиваться.
При всем выше мной сказанном, тенденция Максима запихивать в бинарники картинки меня критически не устраивает. Более того судя по реакции форумчан не устраивает эта идея не только меня. Максим как и большинство своих идей запостил в куче мест. Как уже прошедший такой этап человек смею уверить - это не работает. У людей критическое отторжение к тому что им настойчиво навязывают.
Однако если человек хочет - он вправе в своей собственной программе использовать такой подход, а вот навязывать всем не вправе. Тем более что никаких логических доводов кроме "мне так нравится" не приведено, в то время как против уже привели доводы несколько раз.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 7:16 pm
by maximYCH
Хорошо, я не буду запихивать их в бинарники.
Впрочем один довод в пользу того метода могу показать: если файл с изображениями кнопок панели инструментов, к примеру, будет удален, то программа становится неработоспособной.
Марат, я не за идею "Автор творит для себя", ибо я считаю, что нужна разумная интеграция и координация действий. Я за то, что бы вместе идти к результату и против идеи полной анархии в проекте. Именно благодаря этим установкам я осознал вчерашние ошибки, поэтому извинился и именно потому, что мне указывают, что подход с запихиванием изображений не является кошерным я уступаю место своих интересов интересам сообщества. Надеюсь, что когда-нибудь так будет повсеместно
P.S. Но вот разделение по папкам я сделаю однозначно, если, конечно, не будет объективных возражений. Я про идею каждой программе (кроме некоторых системных, которые я собираюсь закинуть в /rd/1/system/) по папке. Иначе получится совсем бедлам. И да - речь идет не о транке, можно считать, что речь идет о своей сборке, которую по состоянию готовности я выложу на обсуждение.
Re: Вопросы по разработке
Posted: Tue Aug 23, 2011 7:53 pm
by Mario
Если дистрибутив не ограничен рамками как на RD, то ничто не мешает сделать для каждой программы свою директорию.
В случае RD это бесполезная растрата дискового пространства. Каждая директория занимает минимум 512 байт (это если FAT12 и кластер в 1 сектор). В результате потери пространства в образе получаются страшные. Может ты и не знал про это - читай доки по тому же FAT прежде чем предлагать объективно невыгодные вещи. Вообще тебе еще как говаривал Владимир Ильич "Учиться, учиться, учиться..."