Главная страница
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.017 c
15-1249322695
Kerk
2009-08-03 22:04
2009.10.04
Рекурсия


15-1249260855
Дмитрий С
2009-08-03 04:54
2009.10.04
В кипятке 4-5 минут.


11-1205841068
Жепь
2008-03-18 14:51
2009.10.04
проблемка с формой


2-1248752568
xyz
2009-07-28 07:42
2009.10.04
переключение между формами программы


3-1227778320
Вадим
2008-11-27 12:32
2009.10.04
SELECT к нескольким БД