IgorA wrote:
2) даже если подключить img_scale то всеравно большая часть добавленной функции img_resize_to_screen останется не изменяемой. Потому как в ней вычисляются размеры в которые должно вписаться изображение, а если изображение полностью влазит, то изменений никаких не делается. Тут в любом случае пришлось-бы что-то городить потому что вызов img_scale на пустое место не прицепишь, сначала нужно подготовить для него параметры.
Оно у тебя только для 24 bit. Ты для каждой битности собрался дублировать код?
IgorA wrote:
что такое _param1 и _param2 ?
IgorA wrote:
посмотрел libimg.inc и толком ничего не понял что оно такое
Вот поэтому я специально и привёл ссылку
viewtopic.php?f=24&t=1220&p=66859#p66859И если бы ты прошёл по ней, то нашёл бы вот это
Code:
; 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:
; 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
Для LIBIMG_SCALE_STRETCH указываем width и height. И не надо велосипед изобретать, его уже изобрели.