Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.011 c
3-1138652112
Wistler
2006-01-30 23:15
2006.04.23
Libmysqld.dll и External exception C00000008


2-1144684983
que
2006-04-10 20:03
2006.04.23
GetMem & FillChar & Pointer ???


15-1143862359
Pazitron_Brain
2006-04-01 07:32
2006.04.23
Почему этот скрипт не отображает результат?


3-1140933750
tesuji
2006-02-26 09:02
2006.04.23
синхронизация xml и TreeView


2-1144201437
rosl
2006-04-05 05:43
2006.04.23
запрос sql





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский