![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование картинки непопиксельно, а одним махом
Franzy © (2009-07-24 14:46:00)Подскажите, чем можно заменить следующий код (копируется канвас формы во временный битмап):
var p : TPicture;
i,j: longint;
p:=TPicture.Create;
p.Bitmap.Width:=ClientWidth;
p.BitMap.Height:=clientHeight;
for i:=1 to ClientWidth do
for j:=1 to ClientHeight do
p.Bitmap.canvas.Pixels[i,j]:=form1.canvas.Pixels[i,j];
abun (2009-08-03 11:46:00) [1]попробовать метод Assign - это не моможет разве?
т.е. что-то в роде
...
var bmp:tbitmap;
...
bmp:=tbitmap.Create;
bmp.Canvas.Assign(form1.Canvas);
...
bmp.free;
...
CSS (2009-08-02 04:34:00) [2]Попробуйте просто делать скриншот экрана... =))
Игорь Шевченко (2009-07-24 17:39:00) [3]
> Что-то мне подсказывает, что CopyRect - это обертка для
> этой функции
Что-то тебя обманывает, CopyRect обертка для StretchBlt
antonn (2009-07-24 17:05:00) [4]
> Franzy (24.07.09 15:08) [3]
>
>
> > CopyRect ?
>
>
> У TPicture нет такого метода, это метод TCanvas.
зато он есть у TPicture.bitmap
Franzy (2009-07-24 16:37:00) [5]
> GetFormImage
Не работает, выдает пустое серое окно. Вероятно, потому что у меня там опенджиэлем картинка нарисована. CopyRect нормально картинку сохраняет.
Хитрий Лис (2009-07-24 15:34:00) [6]Какая гадость... всё гораздо проще
bitmap := GetFormImage();
Franzy (2009-07-24 15:31:00) [7]
> Windows.BitBlt
Что-то мне подсказывает, что CopyRect - это обертка для этой функции. Сделал с ней, ощутимо быстрей скриншот делается :)
stas (2009-07-24 15:24:00) [8]Franzy (24.07.09 15:18) [6]
Windows.BitBlt
Windows SDK
Franzy (2009-07-24 15:18:00) [9]
> BitBlt
Что это? В справке нет.
Franzy (2009-07-24 15:17:00) [10]Пардон, торможу, у Tpicture есть TBitmap, у которого уже есть TCanvas :)
Игорь Шевченко (2009-07-24 15:14:00) [11]
> Подскажите, чем можно заменить следующий код
BitBlt
Franzy (2009-07-24 15:08:00) [12]
> CopyRect ?
У TPicture нет такого метода, это метод TCanvas.
Palladin (2009-07-24 14:52:00) [13]ну можно добавить
If p.Bitmap.canvas.Pixels[i,j]<>form1.canvas.Pixels[i,j] Then
p.Bitmap.canvas.Pixels[i,j]:=form1.canvas.Pixels[i,j];
)
stas (2009-07-24 14:50:00) [14]CopyRect ?