Главная страница
    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.015 c
15-1143758823
Andy BitOff
2006-03-31 02:47
2006.04.23
Интересная статья о птичьем гриппе.


3-1141069709
shulik
2006-02-27 22:48
2006.04.23
DBGrid и вставка-редактирование


2-1144325836
Layner
2006-04-06 16:17
2006.04.23
Как правильно сделать "скользящий курсор" по выборке


2-1144691010
Дарья
2006-04-10 21:43
2006.04.23
listbox


15-1144222044
Lucefer
2006-04-05 11:27
2006.04.23
Нужен криптографический алгоритм с откр. ключем





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский