Вниз
Скачать: CL | DM;

Копирование картинки непопиксельно, а одним махом   Найти похожие ветки 

← →
Franzy   (2009-07-24 14:46) [0]

Подскажите, чем можно заменить следующий код (копируется канвас формы во временный битмап):

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];


← →
stas ©   (2009-07-24 14:50) [1]

CopyRect ?


← →
Palladin ©   (2009-07-24 14:52) [2]

ну можно добавить

If p.Bitmap.canvas.Pixels[i,j]<>form1.canvas.Pixels[i,j] Then
  p.Bitmap.canvas.Pixels[i,j]:=form1.canvas.Pixels[i,j];

)


← →
Franzy   (2009-07-24 15:08) [3]


> CopyRect ?


У TPicture нет такого метода, это метод TCanvas.


← →
Игорь Шевченко ©   (2009-07-24 15:14) [4]


> Подскажите, чем можно заменить следующий код


BitBlt


← →
Franzy   (2009-07-24 15:17) [5]

Пардон, торможу, у Tpicture есть TBitmap, у которого уже есть TCanvas :)


← →
Franzy   (2009-07-24 15:18) [6]


> BitBlt


Что это? В справке нет.


← →
stas ©   (2009-07-24 15:24) [7]

Franzy   (24.07.09 15:18) [6]

Windows.BitBlt
Windows SDK


← →
Franzy   (2009-07-24 15:31) [8]


> Windows.BitBlt


Что-то мне подсказывает, что CopyRect - это обертка для этой функции. Сделал с ней, ощутимо быстрей скриншот делается :)


← →
Хитрий Лис   (2009-07-24 15:34) [9]

Какая гадость... всё гораздо проще
bitmap := GetFormImage();


← →
Franzy   (2009-07-24 16:37) [10]


> GetFormImage


Не работает, выдает пустое серое окно. Вероятно, потому что у меня там опенджиэлем картинка нарисована. CopyRect  нормально картинку сохраняет.


← →
antonn ©   (2009-07-24 17:05) [11]


> Franzy   (24.07.09 15:08) [3]
>
>
> > CopyRect ?
>
>
> У TPicture нет такого метода, это метод TCanvas.

зато он есть у TPicture.bitmap


← →
Игорь Шевченко ©   (2009-07-24 17:39) [12]


> Что-то мне подсказывает, что CopyRect - это обертка для
> этой функции


Что-то тебя обманывает, CopyRect обертка для StretchBlt


← →
CSS   (2009-08-02 04:34) [13]

Попробуйте просто делать скриншот экрана... =))


← →
abun ©   (2009-08-03 11:46) [14]

попробовать метод Assign - это не моможет разве?
т.е. что-то в роде

...

var bmp:tbitmap;

...

 bmp:=tbitmap.Create;
 bmp.Canvas.Assign(form1.Canvas);

 ...

 bmp.free;

...



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.01 c
15-1248597219
Kerk
2009-07-26 12:33
2009.10.04
Колбаса


1-1218039013
andreil
2008-08-06 20:10
2009.10.04
Быстрое сравнение строк?


15-1249286693
cwl
2009-08-03 12:04
2009.10.04
Аудионаркотики


15-1249058152
tesseract
2009-07-31 20:35
2009.10.04
приложения и потребности


2-1248867537
xyz
2009-07-29 15:38
2009.10.04
ключевое поле-счетчик




   Наверх