Gluk: +1 к номерам иконок вместо имен файлов, хотя именованные все-так лучше.
например:
file-manager_kfar.png ; text-editor_tinypad.png l code-lang_tinypy.png
И прочее в том же духе.
Вопросы по разработке
Может ли мне кто-нибудь рассказать, как правильно пользоваться 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
- Attachments
-
-
file_new.png (1.75 KiB)На всякий случай прикрепляю и сам file_new.png Viewed 6840 times
-
Ну зачем img.to_rgb? Тебя не устраивает внутреннее представление libimg, подстраиваемое под конкретный файл? А libimg не устраивает подсунутый ей вместо изображения массив rgb.
Сделаем мир лучше!
Прикрепил пример, выводящий часть файла iconstrp.gif. Там немного кода, сравни со своим.
- Attachments
-
-
test.asm.txt (3.41 KiB)Downloaded 263 times
-
dunkaist, я поразбирался и таки вывел изображение. За код спасибо.
Единственное, как я понял, прозрачные png не поддерживаются. Ладно, фиг с ним.
Единственное, как я понял, прозрачные png не поддерживаются. Ладно, фиг с ним.
У меня есть подозрение, что одно из утверждений истинно:
1) Графические файлы, вышедшие из пасти Фотошопа каким-то магическим образом коверкают исполняемый файл.
ИЛИ
2) Большие графические файлы каким-то магическим образом коверкают исполняемый файл.
Утверждения основаны на попытке вывести файл, приложенный к сообщению с помощью libimg, файл подключается как внутренний через выше обозначенный
Смысл в том, что update.png, приложенный к этому сообщению и скачанный с Интернета выводится вполне успешно (единственное - черный фон с шумами вместо прозрачного, что досадно). А вот logo.png (ровно, как и logo.jpg), созданный за пару минут в Фотошопе делают программу не исполняемой (@notify выводит, что файл не является исполняемым).
Может быть у кого-нибудь имеются соображений, почему такое может происходить?
P.S. Не бейте меня, пожалуйста, если ответ лежит на поверхности
1) Графические файлы, вышедшие из пасти Фотошопа каким-то магическим образом коверкают исполняемый файл.
ИЛИ
2) Большие графические файлы каким-то магическим образом коверкают исполняемый файл.
Утверждения основаны на попытке вывести файл, приложенный к сообщению с помощью libimg, файл подключается как внутренний через выше обозначенный
Code: Select all
image_data:
file 'logo.png'
.sizeof = $ - image_data
Может быть у кого-нибудь имеются соображений, почему такое может происходить?
P.S. Не бейте меня, пожалуйста, если ответ лежит на поверхности
- Attachments
-
-
update.png (2.34 KiB)Viewed 6775 times
-
logo.png (5.48 KiB)Viewed 6775 times
-
logo.jpg (14.76 KiB)Viewed 6775 times
-
Судя по тому что KIV и zSea (который не пользуется libimg, а использует собственные плагины) отображают нормально, то тебе разбирайся в твоем хитром коде.
Это как сказать. Декодирование и работа с ними (повороты, отражения) поддерживаются на равне с непрозрачными. Но для вывода с альфа каналом нужно прочитать картинку из области окна, куда ты собираешься вывести изображдение, наложить одно на другое и только потом рисовать в окне. Libimg этого не делает.maximYCH wrote:Единственное, как я понял, прозрачные png не поддерживаются.
И я не понял, зачем ты пихаешь изображения в исполняемый файл.
- Attachments
-
-
test.asm.txt (2.87 KiB)Downloaded 254 times
-
Да, я разобрался ещё до этого, убрал кое-что лишнее.
Изображения я упаковываю в kex исключительно потому, что мне так нравится (привык я, что ресурсы программы внутри нее). Если имеются какие-либо причины так делать я готов их выслушать.
Изображения я упаковываю в kex исключительно потому, что мне так нравится (привык я, что ресурсы программы внутри нее). Если имеются какие-либо причины так делать я готов их выслушать.
Банальный пример это легкая возможность модифицировать внений вид программы(перерисовать иконки например). Программисту это сделать легко можно, а вот например дизайнеру разбираться с сборкой из исходников, ради того чтобы изменить иконку - както тяжело. Имхо.
И да. На случай использования этого ресурса в других программах в итоге уменьшит общий размер программы(куча программ с вшитыми ресурсами больше места занимают программ без ресурсов, но использующие один и тот же ресурс с носителя)
И да. На случай использования этого ресурса в других программах в итоге уменьшит общий размер программы(куча программ с вшитыми ресурсами больше места занимают программ без ресурсов, но использующие один и тот же ресурс с носителя)
Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Что же до общих ресурсов, то тут я могу представить использование иконок для расширений файлов, но что ещё, кроме них? По поводу общих иконок расширений файлов ничего против не имею и даже всеми руками за, в этом смысле я за стандартизацию.
Что же до общих ресурсов, то тут я могу представить использование иконок для расширений файлов, но что ещё, кроме них? По поводу общих иконок расширений файлов ничего против не имею и даже всеми руками за, в этом смысле я за стандартизацию.
Такому автору можно посоветоватьmaximYCH wrote:Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Freeman
Не совсем верно - автор герой, царь и творец. Его мнение первично. Использовать или нет пользователю это не проблема автора. Естественно в плане объективности он может прислушаться к отдельным советам, а может и не прислушиваться.
При всем выше мной сказанном, тенденция Максима запихивать в бинарники картинки меня критически не устраивает. Более того судя по реакции форумчан не устраивает эта идея не только меня. Максим как и большинство своих идей запостил в куче мест. Как уже прошедший такой этап человек смею уверить - это не работает. У людей критическое отторжение к тому что им настойчиво навязывают.
Однако если человек хочет - он вправе в своей собственной программе использовать такой подход, а вот навязывать всем не вправе. Тем более что никаких логических доводов кроме "мне так нравится" не приведено, в то время как против уже привели доводы несколько раз.
Не совсем верно - автор герой, царь и творец. Его мнение первично. Использовать или нет пользователю это не проблема автора. Естественно в плане объективности он может прислушаться к отдельным советам, а может и не прислушиваться.
При всем выше мной сказанном, тенденция Максима запихивать в бинарники картинки меня критически не устраивает. Более того судя по реакции форумчан не устраивает эта идея не только меня. Максим как и большинство своих идей запостил в куче мест. Как уже прошедший такой этап человек смею уверить - это не работает. У людей критическое отторжение к тому что им настойчиво навязывают.
Однако если человек хочет - он вправе в своей собственной программе использовать такой подход, а вот навязывать всем не вправе. Тем более что никаких логических доводов кроме "мне так нравится" не приведено, в то время как против уже привели доводы несколько раз.
Хорошо, я не буду запихивать их в бинарники.
Впрочем один довод в пользу того метода могу показать: если файл с изображениями кнопок панели инструментов, к примеру, будет удален, то программа становится неработоспособной.
Марат, я не за идею "Автор творит для себя", ибо я считаю, что нужна разумная интеграция и координация действий. Я за то, что бы вместе идти к результату и против идеи полной анархии в проекте. Именно благодаря этим установкам я осознал вчерашние ошибки, поэтому извинился и именно потому, что мне указывают, что подход с запихиванием изображений не является кошерным я уступаю место своих интересов интересам сообщества. Надеюсь, что когда-нибудь так будет повсеместно
P.S. Но вот разделение по папкам я сделаю однозначно, если, конечно, не будет объективных возражений. Я про идею каждой программе (кроме некоторых системных, которые я собираюсь закинуть в /rd/1/system/) по папке. Иначе получится совсем бедлам. И да - речь идет не о транке, можно считать, что речь идет о своей сборке, которую по состоянию готовности я выложу на обсуждение.
Впрочем один довод в пользу того метода могу показать: если файл с изображениями кнопок панели инструментов, к примеру, будет удален, то программа становится неработоспособной.
Марат, я не за идею "Автор творит для себя", ибо я считаю, что нужна разумная интеграция и координация действий. Я за то, что бы вместе идти к результату и против идеи полной анархии в проекте. Именно благодаря этим установкам я осознал вчерашние ошибки, поэтому извинился и именно потому, что мне указывают, что подход с запихиванием изображений не является кошерным я уступаю место своих интересов интересам сообщества. Надеюсь, что когда-нибудь так будет повсеместно
P.S. Но вот разделение по папкам я сделаю однозначно, если, конечно, не будет объективных возражений. Я про идею каждой программе (кроме некоторых системных, которые я собираюсь закинуть в /rd/1/system/) по папке. Иначе получится совсем бедлам. И да - речь идет не о транке, можно считать, что речь идет о своей сборке, которую по состоянию готовности я выложу на обсуждение.
Если дистрибутив не ограничен рамками как на RD, то ничто не мешает сделать для каждой программы свою директорию.
В случае RD это бесполезная растрата дискового пространства. Каждая директория занимает минимум 512 байт (это если FAT12 и кластер в 1 сектор). В результате потери пространства в образе получаются страшные. Может ты и не знал про это - читай доки по тому же FAT прежде чем предлагать объективно невыгодные вещи. Вообще тебе еще как говаривал Владимир Ильич "Учиться, учиться, учиться..."
В случае RD это бесполезная растрата дискового пространства. Каждая директория занимает минимум 512 байт (это если FAT12 и кластер в 1 сектор). В результате потери пространства в образе получаются страшные. Может ты и не знал про это - читай доки по тому же FAT прежде чем предлагать объективно невыгодные вещи. Вообще тебе еще как говаривал Владимир Ильич "Учиться, учиться, учиться..."
Who is online
Users browsing this forum: No registered users and 0 guests