Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
6-19733
hacker
2003-02-14 19:43
2003.04.07
Https


14-19836
uw
2003-03-19 17:50
2003.04.07
OSR2


7-19902
Alex Shulg
2003-02-14 09:32
2003.04.07
NT Service & CreateProcess


3-19511
navuhodonosr
2003-03-20 11:57
2003.04.07
Поиск в базе данных


3-19425
Liris
2003-03-18 11:39
2003.04.07
1С и Delphi ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский