Главная страница
    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.007 c
7-19893
Alexandr3
2003-02-12 23:48
2003.04.07
Как распечатать...


14-19781
Vint
2003-03-19 14:19
2003.04.07
Прикол всем любителям Буша !


1-19693
Шурик Ш
2003-03-26 11:41
2003.04.07
Как программно добраться до свойства Excel я?


1-19632
delkos
2003-03-23 22:45
2003.04.07
кодировки клавишь...


3-19410
Askik
2003-03-17 16:48
2003.04.07
Можно ли соединить два запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский