Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.23;
Скачать: CL | DM;

Вниз

как сохраить рисунок с канвы?   Найти похожие ветки 

 
Locke ©   (2006-04-10 10:48) [0]

Помогите сабж, зарание спасибо.


 
Locke ©   (2006-04-10 11:24) [1]

ап


 
Poirot ©   (2006-04-10 11:30) [2]

TBitmap и у него есть TCanvas :)
+ GetWindowDC


 
Gydvin ©   (2006-04-10 11:36) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
bitmap:tbitmap;
begin
canvas.Brush.Color:=clred;
canvas.Rectangle(0,0,100,100);
bitmap:=tbitmap.Create;
bitmap.Width:=100;
bitmap.Height:=100;
bitblt (bitmap.Canvas.Handle,0,0,100,100,canvas.Handle,0,0,SRCCOPY);
bitmap.SaveToFile("test.bmp");
bitmap.Free;

end;


 
Der Nechk@ssoff ©   (2006-04-10 11:43) [4]

if savepicturedialog1.Execute then
Image1.Picture.SaveToFile(SavePictureDialog1.FileName);

Я пользуюсь и реально сейвит.


 
Gydvin ©   (2006-04-10 11:47) [5]

Der Nechk@ssoff ©   (10.04.06 11:43) [4]

а если это не Timage, а скажем канва формы


 
Der Nechk@ssoff ©   (2006-04-10 11:57) [6]


> Gydvin ©   (10.04.06 11:47) [5]

Тогда извеняюсь.


 
balepa ©   (2006-04-10 12:09) [7]


> Der Nechk@ssoff ©   (10.04.06 11:57) [6]
> Тогда извеняюсь

ИзвИняюсь


 
Джо ©   (2006-04-10 12:13) [8]

> [7] balepa ©   (10.04.06 12:09)
> ИзвИняюсь

Прошу прощения ;)


 
Locke ©   (2006-04-10 12:33) [9]

я с Пэинт бобка пытаюсь сохранение сделать
это как-нибудь проще можно осуществить?


 
Gydvin ©   (2006-04-10 12:45) [10]

Тоже самое

procedure TForm1.Button1Click(Sender: TObject);
var
bitmap:tbitmap;
w,h:integer;
begin
w:=paintbox1.Width;
h:=paintbox1.Heigh;

bitmap:=tbitmap.Create;
bitmap.Width:=w;
bitmap.Height:=h;
bitblt (bitmap.Canvas.Handle,0,0,w,h,paintbox1.canvas.Handle,0,0,SRCCOPY);
bitmap.SaveToFile("test.bmp");
bitmap.Free;

end;


 
Locke ©   (2006-04-10 12:48) [11]

разьясните пожалуйста Bitblt() и что в скобках именно?


 
Locke ©   (2006-04-10 12:58) [12]

он ошибку выдает

bitmap:=tbitmap.Create;
bitmap.Width:=w;
bitmap.Height:=h


на вот этом вот


 
Джо ©   (2006-04-10 12:59) [13]

> [12] Locke ©   (10.04.06 12:58)
> он ошибку выдает
>
> bitmap:=tbitmap.Create;
> bitmap.Width:=w;
> bitmap.Height:=h
>
> на вот этом вот

Вместо этих букв подставь ширину/высоту картинки.
За подробностями по BitBlt - нажми F1.


 
Gydvin ©   (2006-04-10 12:59) [14]

Разъясняю

Это WinApi функци копирования с одной канвы на другую.
Где bitmap.Canvas  приемник, (0,0,w,h) это координаты куда врисовать, paintbox1.canvas - это источник (0,0) это координаты от которых надо начинать копировать изображение, SRCCOPY с этим разбирайся сам. Соответственно про хендлы я рассказывать не буду.

А вообще читай WinApi и прибудет с тобой сила


 
Locke ©   (2006-04-10 13:05) [15]

спасибо Вейдер  ;)


 
Gydvin ©   (2006-04-10 13:06) [16]

w:=paintbox1.Width;
h:=paintbox1.Heigh;


TO

w:=paintbox1.ClientWidth;
h:=paintbox1.ClientHeight;


ЗЫ. Я и забыл как в паинтбоксе, давно им непользовался


 
Locke ©   (2006-04-10 13:15) [17]

w:=PaintBox1.Width;
h:=PaintBox1.Height;

bitmap1.Width:=w;     //  Вот тут ошибку выдает когда сохранить пытаюсь
bitmap1.Height:=h;
bitblt(bitmap1.Canvas.Handle,0,0,w,h,paintbox1.canvas.Handle,0,0,SRCCOPY);
bitmap1.SaveToFile("c:\1.bmp");


 
Gydvin ©   (2006-04-10 13:17) [18]

какую, у меня ничего не выдает


 
Locke ©   (2006-04-10 13:18) [19]

w:=PaintBox1.ClientWidth;
h:=PaintBox1.ClientHeight;

bitmap1.Width:=w;    // Опять тут
bitmap1.Height:=h;
bitblt(bitmap1.Canvas.Handle,0,0,w,h,paintbox1.canvas.Handle,0,0,SRCCOPY);
bitmap1.SaveToFile("c:\1.bmp");


 
Gydvin ©   (2006-04-10 13:20) [20]

......

bitmap:=tbitmap.Create;
.....

bitmap.Free;


 
Locke ©   (2006-04-10 13:21) [21]

Debugger exception notification
access violation at addess ... in module "s.exe" .read of address ooooooo.


 
Locke ©   (2006-04-10 13:22) [22]

во create не поставил
 

... а зачем он?
можно  через Bitmap1.Create ?


 
Gydvin ©   (2006-04-10 13:23) [23]

Давай целиком код обработчика от

Procedure

до

END;


 
Gydvin ©   (2006-04-10 13:24) [24]

нет нельзя


 
Gydvin ©   (2006-04-10 13:25) [25]

Не пойму это, что прикол или развод, или и то и то


 
Locke ©   (2006-04-10 13:26) [26]

а почему чем различаются их функции?


 
Gydvin ©   (2006-04-10 13:27) [27]

не ну точно развод, а я повелся.


 
Ашкые   (2006-04-10 13:29) [28]

а почему чем различаются их функции?


 
Ашкые   (2006-04-10 13:36) [29]

ап


 
Locke ©   (2006-04-10 13:40) [30]

почему если начинающий сразу не догоняет , значит подкол?
все заработало

bitmap:=tbitmap.Create;
когда поставил

только не понимаю почему

Bitmap1.Create что это делает и что bitmap:=tbitmap.Create

???


 
Gydvin ©   (2006-04-10 13:51) [31]

Потому что так вызывается зкземпляр класса.

mybitmap:=tbitmap.create;
mystringlist:=TstringList.create;
mywmf:=Tmetafile.create;
myjpg:=tjpegimage.create;
myedit:=tedit.create;
myform:=tform.create;

И я сомневаюсь, что кто либо будет давать всю теорию, нуна читать умные книжки, если задаешься подобными вопросами (а ими впринципе следует задаваться), но только не здесь. а посему прими это, как данность


 
Locke ©   (2006-04-10 13:58) [32]

Понятно , спасибо



Страницы: 1 вся ветка

Текущий архив: 2006.04.23;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.044 c
2-1144326365
RomanH
2006-04-06 16:26
2006.04.23
IBTable или Table


8-1132228825
CondAL
2005-11-17 15:00
2006.04.23
проиграть события в midi файлах


2-1144563094
DimDim
2006-04-09 10:11
2006.04.23
Как заблокировать отдельные пункты в ComboBox?


6-1136889525
antoxa2005
2006-01-10 13:38
2006.04.23
Подскажите. 2-а компьютера в разных городах, у обоих выделенная


2-1144649364
Yojik
2006-04-10 10:09
2006.04.23
Не видны данные через Fields и FiledByName в DM