Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.04;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.02 c
2-1249022316
webpauk
2009-07-31 10:38
2009.10.04
Позиция курсора


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


15-1249288550
blackman
2009-08-03 12:35
2009.10.04
Борис Стругацкий. Правила жизни


2-1249273732
Disa
2009-08-03 08:28
2009.10.04
Если прога работает, то повторный запуск передает первой копии ин


15-1249325284
oldman
2009-08-03 22:48
2009.10.04
Да ну вас всех два