Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Как получить произвольный кусок из битмапа..   Найти похожие ветки 

 
Zaxar   (2003-03-26 11:47) [0]

Приветствую!

Например, есть битмап 1200x900, а мне необходимо получить его кусок, например, начиная с координат x1=10;y1=10 и до координат x2=30;y2=30.. Пробовал начальный сдвиг левой верхней точки реализовать через BitBlt - но в результирующем битмапе появляются белые полосы шириной и высотой как раз по x= и y=..

Помогите, пожалуйста!


 
vlad40 ©   (2003-03-26 12:24) [1]

Попробуй такой вариант:


function CopyBitMapRect(BitMapSource: TBitmap; RectSource: TRect): TBitmap;
begin
Result:=TBitmap.Create;
Result.Width:=RectSource.Right-RectSource.Left;
Result.Height:=RectSource.Bottom-RectSource.Top;
Result.Canvas.CopyRect(Rect(0,0,Result.Width,Result.Height),BitMapSource.Canvas,RectSource);
end;


 
Axis_of_Evil ©   (2003-03-26 12:40) [2]

Товарищч, BitBlt работает нормально, приведите код.


 
Zaxar   (2003-03-26 12:53) [3]

Пожалуйста - вот Вам код. Для пояснения - над битмапом располагается полупрозрачный Gif (показывая какой кусок будет отрезан)


cutbmp:=Tbitmap.Create;
cutbmp.Width:=form1.Gif.Width;
cutbmp.Height:=form1.Gif.Height;
cutbmp.PixelFormat:=form1.Image1.Picture.Bitmap.PixelFormat;
BitBlt
(cutbmp.Canvas.Handle,
0,
0,
form1.Gif.Width,
form1.Gif.Height,
form1.Image1.Picture.Bitmap.Canvas.Handle,
form1.Gif.Left,
form1.Gif.Top,
SRCCopy);
cutbmp.SaveToFile("c:\test.bmp");
cutbmp.Free;



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
14-19762
Barman
2003-03-22 14:53
2003.04.07
Проблема с RXLib.


3-19488
galexis
2003-03-19 16:54
2003.04.07
Отчеты в Delphi 6


1-19530
Вадим
2003-03-26 16:15
2003.04.07
TRcihEdit


9-19402
Карлсон
2002-11-03 21:03
2003.04.07
NetWalk


14-19855
Merlin
2003-03-20 12:41
2003.04.07
Геометрия, блин