Kolibri Image Viewer
-
Падает при попытке открыть файл из аттачмента.
Пофиксил в libimg (r3499).0CodErr wrote:Падает при попытке открыть файл из аттачмента.
Декодер ожидал, что RLE будет учитывать разрывы color planes внутри общей scanline. Однако в спецификации ясно написано:
Спецификация pcx wrote:There should always be a decoding break at the end of each scan line. But there will not be a decoding break at the end of each plane within each scan line.
KIV падает на этом файле. Файл не валидный, но всё же падение не есть нормальная реакция, тем более когда просматриваешь папку с фалами.
- Attachments
-
-
1.zip (369 Bytes)Downloaded 345 times
-
Из хаоса в космос
Пофиксил в libimg r4229.Leency wrote:KIV падает на этом файле. Файл не валидный, но всё же падение не есть нормальная реакция, тем более когда просматриваешь папку с фалами.
Там вообще плохо с невалидными файлами. Несложные и быстрые проверки делаются, а дальше уже идёт универсальность и надёжность vs скорость работы/разработки и простота кода.
Добавил файл в архив тестовых изображений.
Спасибо.
Из хаоса в космос
Можно пожалуйста добавить скроллбары в KIV?
Их ну ОЧЕНЬ не хватает.
Не заставляйте меня новую программу. Пожалуйста
Их ну ОЧЕНЬ не хватает.
Не заставляйте меня новую программу. Пожалуйста
Из хаоса в космос
Критический баг:
Открыть любую картинку в KIV, нажать кнопку "Сделать рисунком рабочего стола" -> зависание.
Открыть любую картинку в KIV, нажать кнопку "Сделать рисунком рабочего стола" -> зависание.
Из хаоса в космос
Вместо того, чтобы городить с нуляKolibriBot « Ср дек 21, 2016 7:47 pm » New SVN revision #6804 by IgorA in /programs/media/kiv/trunk: kiv: scale to screen big images (24 bit)
Code: Select all
proc img_resize_to_screen
Вот здесь под спойлером есть исходник imgC viewtopic.php?f=24&t=1220&p=66859#p66859 которая использует img_scale и не только. И это работает для разных битностей.
Я согласен с тем что лучше использовать img_scale из библиотеки libimg, чем подключать функцию из buf2d. Но все-таки есть парочка возражений:0CodErr wrote:Вместо того, чтобы городить с нуля
Код:
proc img_resize_to_screen
следовало использовать img_scale из библиотеки libimg
1) что такое _param1 и _param2 ?
Code: Select all
proc img.scale _src, _crop_x, _crop_y, _crop_width, _crop_height, _dst, _scale, _inter, _param1, _param2 ;;
.........
;> [_param1] = see libimg.inc ;;
;> [_param2] = see libimg.inc ;;
2) даже если подключить img_scale то всеравно большая часть добавленной функции img_resize_to_screen останется не изменяемой. Потому как в ней вычисляются размеры в которые должно вписаться изображение, а если изображение полностью влазит, то изменений никаких не делается. Тут в любом случае пришлось-бы что-то городить потому что вызов img_scale на пустое место не прицепишь, сначала нужно подготовить для него параметры.
Оно у тебя только для 24 bit. Ты для каждой битности собрался дублировать код?IgorA wrote:2) даже если подключить img_scale то всеравно большая часть добавленной функции img_resize_to_screen останется не изменяемой. Потому как в ней вычисляются размеры в которые должно вписаться изображение, а если изображение полностью влазит, то изменений никаких не делается. Тут в любом случае пришлось-бы что-то городить потому что вызов img_scale на пустое место не прицепишь, сначала нужно подготовить для него параметры.
IgorA wrote:что такое _param1 и _param2 ?
Вот поэтому я специально и привёл ссылку viewtopic.php?f=24&t=1220&p=66859#p66859IgorA wrote:посмотрел libimg.inc и толком ничего не понял что оно такое
И если бы ты прошёл по ней, то нашёл бы вот это
Code: Select all
; if need scale then scale ; |--------------------------------------- ;
cmp [scale.height], dword 0
je .scaled
cmp [scale.width], dword 0
je .scaled
cmp [scale], byte "%"
je .percent
push dword [scale.height]
push dword [scale.width]
jmp .wh_pushed
.percent:
mov ecx, [src]
mov ebx, 100
mov eax, [ecx + 8]
mul dword [scale.height]
div ebx
push eax
mov eax, [ecx + 4]
mul dword [scale.width]
div ebx
push eax
.wh_pushed:
push dword LIBIMG_INTER_BILINEAR
push dword LIBIMG_SCALE_STRETCH
push dword 0
mov eax, [src]
push dword [eax + 8]
push dword [eax + 4]
push dword 0
push dword 0
push dword [src]
call [img_scale]
Code: Select all
; scale type ; corresponding img.scale params
LIBIMG_SCALE_INTEGER = 1 ; scale factor ; reserved 0
LIBIMG_SCALE_TILE = 2 ; new width ; new height
LIBIMG_SCALE_STRETCH = 3 ; new width ; new height
LIBIMG_SCALE_FIT_RECT = 4 ; new width ; new height
LIBIMG_SCALE_FIT_WIDTH = 5 ; new width ; new height
LIBIMG_SCALE_FIT_HEIGHT = 6 ; new width ; new height
LIBIMG_SCALE_FIT_MAX = 7 ; new width ; new height
Все-равно что-то не получается. На всякий случай даю файл, может кто разберется.
- Attachments
-
-
kiv.asm (28.74 KiB)Downloaded 299 times
-
IgorA,
there is an example of using img.scale. Regarding your code: set crop_width=image_width, same for height, src != dst.
Current img.scale has a number of limitations (e.g. animated images). I already implemented most of this functionality in my working copy, however I need some time to make the code ready for commit. Please, don't bother yourself with bugs of img.scale, just report.
Thank you for development of libimg.
there is an example of using img.scale. Regarding your code: set crop_width=image_width, same for height, src != dst.
Current img.scale has a number of limitations (e.g. animated images). I already implemented most of this functionality in my working copy, however I need some time to make the code ready for commit. Please, don't bother yourself with bugs of img.scale, just report.
Thank you for development of libimg.
Понравилось тебе на английском писать, культурный уровень проекта повышаешь?
У меня тоже есть узконаправленные наработки, не знаю насколько в тему http://websvn.kolibrios.org/filedetails ... m#line-414
У меня тоже есть узконаправленные наработки, не знаю насколько в тему http://websvn.kolibrios.org/filedetails ... m#line-414
По-моему это хорошо, ведь больше людей(потенциальных разработчиков) смогут прочитать и понять.Pathoswithin wrote:Понравилось тебе на английском писать, культурный уровень проекта повышаешь?
Hello again, nice to see you all, guys.
It's been more than 5 years as I assigned #11 to myself. Now I attach a new preview with scaling and scrollbars. Change zoom mode with 'w' and '=' keys (w for 'fit to window', = for 'do not scale', like sxiv).
I ask not for bug reports (have enough), but for UI ideas.
; cast Leency
It's been more than 5 years as I assigned #11 to myself. Now I attach a new preview with scaling and scrollbars. Change zoom mode with 'w' and '=' keys (w for 'fit to window', = for 'do not scale', like sxiv).
I ask not for bug reports (have enough), but for UI ideas.
; cast Leency
- Attachments
-
-
kiv (13.13 KiB)Downloaded 287 times
-
Who is online
Users browsing this forum: No registered users and 3 guests