Re: Kolibri Image Viewer
Posted: Sat May 04, 2013 9:42 am
Падает при попытке открыть файл из аттачмента.
Пофиксил в libimg (r3499).0CodErr wrote:Падает при попытке открыть файл из аттачмента.
Спецификация 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.
Пофиксил в libimg r4229.Leency wrote: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
Я согласен с тем что лучше использовать img_scale из библиотеки libimg, чем подключать функцию из buf2d. Но все-таки есть парочка возражений:0CodErr wrote:Вместо того, чтобы городить с нуля
Код:
proc img_resize_to_screen
следовало использовать img_scale из библиотеки libimg
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 ;;
Оно у тебя только для 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
По-моему это хорошо, ведь больше людей(потенциальных разработчиков) смогут прочитать и понять.Pathoswithin wrote:Понравилось тебе на английском писать, культурный уровень проекта повышаешь?