Форум: "Основная";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизКак получить произвольный кусок из битмапа.. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c