forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Почему не работает? (http://forum.boolean.name/showthread.php?t=7751)

Doctor Drive 02.02.2009 01:02

Почему не работает?
 
Вложений: 1
После первой формы не работает.
Мне нужно сохранить картинку зависимо от выбранного формата в первой форме. После нажатия "ок" тупо зависает - не сохраняет (и не показывает вторую форму, если выбранно "jpeg")


program ImageConverter;
uses imloadjsr75, png, jpeg, bmp, jsr75;
var ok: command;
im, im2: image;
iname, format, saveformat, quality, png2, jpg, bmp, png: integer;
sav: string;
begin
ShowForm;
iname := FormAddTextField('Enter image adress', '/c:/', 50, TF_ANY);
format := FormAddChoice('Output Format', CH_EXCLUSIVE );
bmp := choiceappendstring(format, 'bmp');
jpg := choiceappendstring(format, 'jpeg');
png := choiceappendstring(format, 'png');
ok := CreateCommand('Ok', CM_OK, 1);
AddCommand(ok);
repeat until GetClickedCommand = ok;
im := loadimage(formgettext(iname));
saveformat := choicegetselectedindex(format);
if saveformat = 0 then sav := formgettext(iname) + '.bmp';
if saveformat = 1 then sav := formgettext(iname) + '.jpg';
if saveformat = 2 then sav := formgettext(iname) + '.png';
drawimage(im, 0, 0);
im2 := imagefromcanvas(0, 0, getimagewidth(im), getimageheight(im));
formremove(iname);
formremove(format);
if saveformat = 0 then savebmp(im2, sav);
if saveformat = 1 then begin
quality := FormAddGauge('Choose quality', true, 100, 0);
repeat until GetClickedCommand = ok;
removecommand(ok);
formremove(quality);
Jpeg.SaveImage(im2, formgetvalue(quality), sav);
end;
if saveformat = 2 then png2 := save_png(im2, sav);
end.

ViNT 02.02.2009 01:33

Ответ: Почему не работает?
 
Думаю, не работает потому, что LoadImage - стандартная функция, и программа при её вызове пытается загрузить ресурс с адреса в ФС, что приводит к сбою.
Нужно написать imloadjsr75.loadimage, тогда сработает функция из баблиотеки.
И еще - непонятен смысл блока
PHP код:

drawimage(im00);
im2 := imagefromcanvas(00getimagewidth(im), getimageheight(im)); 

Для чего это делается?
Это, по сути, то же самое, что и im2:=im, только с большим числом операций. Да и вообще, зачем переносить изображение в im2?

Doctor Drive 02.02.2009 02:24

Ответ: Почему не работает?
 
ой, да, чтото я глюкнул - это не нужно Ыыы
спс за совет, ща попробую)


Часовой пояс GMT +4, время: 17:30.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot