![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисуем...
eXPell © (2007-03-13 14:36:00)Вот есть код:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,dop,kol,shag:integer;
begin
form1.Image1.Canvas.Pixels[0,0]:=rgb(length(s),0,length(s));
dop:=2;
kol:=0;
shag:=0;
for i:=0 to 900 do
begin
if kol=200 then
begin
dop:=dop+1;
shag:=0;
kol:=0;
end;
form1.Image1.Canvas.Pixels[shag,dop]:=rgb(i,0,i);
kol:=kol+1;
shag:=shag+1;
end;
end;
рисует на image три линии. когда сохраняю рисунок, то сохраняется и белый фон (так что ли). Подскажите как можно реализовать, что бы рисунок сохранялся только то что нарисовано (т.е. когда его потом в просмотрщике открываешь, чтобы были видны только эти линии)?
ЗЫ. если что я поясню)))
default (2007-03-13 16:41:00) [21]Amoeba © (13.03.07 16:38) [17]
а что реально маньше будет весить:)
eXPell (2007-03-13 16:40:00) [22]
> Elen © (13.03.07 16:33) [16]
ну картинка нарисованная.
> Amoeba © (13.03.07 16:38) [17]
высшая степень похвалы. спс. ну лучше по делу б)))
Amoeba (2007-03-13 16:38:00) [23]
> eXPell © (13.03.07 16:30) [15]
>
>
> > SlymRO © (13.03.07 16:24) [14]
>
> дык, я ж не за размером (кб, мб) гонюсь-то, а за размеры
> (ширина и высота). получив соответствующую ширину*высоту
> и сжимать то не надо))), т.к. файл с шириной 300 пикселей
> и высотой 3 пикселя - думаю весить будет маловато, и сжатие
> как таковое тут не понадобится:)
>
Орех!!!
Elen (2007-03-13 16:33:00) [24]
> пикче исчезает...
Чего исчезает???
eXPell (2007-03-13 16:30:00) [25]
> SlymRO © (13.03.07 16:24) [14]
дык, я ж не за размером (кб, мб) гонюсь-то, а за размеры (ширина и высота). получив соответствующую ширину*высоту и сжимать то не надо))), т.к. файл с шириной 300 пикселей и высотой 3 пикселя - думаю весить будет маловато, и сжатие как таковое тут не понадобится:)
SlymRO (2007-03-13 16:24:00) [26]eXPell © (13.03.07 16:20) [13]
На канвасе лежит BMP! БМП - незжатый фотмат... САЖМИ! например в jpg при помощи соотв. компонент
eXPell (2007-03-13 16:20:00) [27]
> Elen © (13.03.07 16:16) [9]
да я так сразу и попробовал: дословно "Просмотр не доступен." стандартный просмотрщик говорит.
ЗЫ. И как-то странно: после того как нажал сохранить как метафайл, пикче исчезает...
ЗЫЫ. правда глупо выгляжу((((....
Сергей М. (2007-03-13 16:18:00) [28]
> сейчас попробовал сохранять .. gif
> просмотрщик его не открывает. Что не так?
Просмотрщик увидел в файле с ожидаемым (согласно заявленному расширению имени) gif-форматом вовсе не gif-формат
Elen (2007-03-13 16:17:00) [29]
> от смены расширения содержимое не меняется :)
... но меняется выбор проги-просмотрщика :)
SlymRO (2007-03-13 16:16:00) [30]default © (13.03.07 15:50) [6]
метафайл?
ага... рисуем "попиксельно".. и хде тут объект "вектор"...
eXPell © (13.03.07 16:08) [7]
.gif'
от смены расширения содержимое не меняется :)
Elen (2007-03-13 16:16:00) [31]
> form1.Image1.Picture.Metafile.SaveToFile('d:\new_file.gif');
Гы, так ведь не каждый метафайл может открыться, и кстати ты его назови не .gif а .wmf
default (2007-03-13 16:11:00) [32]ээ ты подожди сам я этот метафайл ниразу не использовал:)
eXPell (2007-03-13 16:08:00) [33]
> default © (13.03.07 15:50) [6]
метафайл - это изо, построенное на граф. устройстве с помощью спец команд(полигон,ректангл и т.п.)
растровое изо - это произвольное изо.
Правильно я понимаю?
ЗЫ. сейчас попробовал сохранять так form1.Image1.Picture.Metafile.SaveToFile('d:\new_file.gif');
просмотрщик его не открывает. Что не так?
ЗЫЫ. за глупость не ругайте)
default (2007-03-13 15:50:00) [34]метафайл?
Сергей М. (2007-03-13 15:44:00) [35]
> eXPell © (13.03.07 15:42) [4]
Сохраняй вектор)
> на курсы надо походить што ли
Тоже вариант ... ликбез никогда лишним не бывал)
eXPell (2007-03-13 15:42:00) [36]
> Сергей М. © (13.03.07 15:34) [3]
да нет, Вы чуток не совсем поняли)) (может я коряво обяснил).
В процессе работы программы в image так сказать рисуются эти линии. Но размер самого image несколько больше чем это необходимо (хотя пользователю это удобно - нагляден процесс). Так вот. После отрисовки линий, пользователь сохраяет рисунок. Каким образом сделать что бы сохранились только эти линии?
Т.е. грубо говоря: сохранилась не вся "поверхность" image с размерами 345*105, а получается 300*3 (длина линий 300 пикселей, а "ширина" - 1 пиксель).
ЗЫ. ...плохо объясняю... на курсы надо походить што ли)))
Сергей М. (2007-03-13 15:34:00) [37]
> весит файл (при размере 345*105) = 140 кб, и это-то две
> полосочки.
А сколько ж ты хотел ?)
В ВМР-формате сохранил - в нем же и получи !)
Никто кроме тебя меры по сжатию изображения мер не предпримет)
eXPell (2007-03-13 15:23:00) [38]Сохраняю по стандарту
form1.Image1.Picture.SaveToFile('d:\new_file.jpg');
Но, смысл в том что весит файл (при размере 345*105) = 140 кб, и это-то две полосочки.
Думаю, что убрав этот "белый фон" - размер значительно сократится. Может просто само сохранение не правильно...
Сергей М. (2007-03-13 15:03:00) [39]
> когда сохраняю рисунок
> если что я поясню
Уж изволь пояснить)
Бо в твоем коде нет ни намека на "сохранение" ..