Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];
Внизвопрос по повороту Bitmap Найти похожие ветки
← →
Martyn (2002-05-21 12:57) [0]Привет всем!
подскажите, как повернуть изображение физически в файле на 90 градусов: т.е.
dest.width := source.height;
dest.height := source.width;
dest.pixelformat := source.pixelformat;
dest.pallete := source.palette;
и желательно через WinAPI - скорость очень лимитирует
← →
MBo (2002-05-21 13:01) [1]ScanLine или GetDiBits/SetDiBits
← →
Martyn (2002-05-21 13:25) [2]2MBo
а живой код можно увидеть...:)))) буду признателен
← →
MBo (2002-05-21 13:38) [3]со ScanLine или GetDiBits/SetDiBits?
← →
Martyn (2002-05-21 14:20) [4]2MBo
c GetDiBits/SetDiBits
API все-таки быстрее работает
← →
MBo (2002-05-21 14:31) [5]это как дело с getdibits иметь. более полный пример с setdibits
я в форуме давал, но поиск не работает
procedure TForm1.Button2Click(Sender: TObject);
var b:tbitmap;
a:array[0..9,0..9] of TRGBQuad;
s:string;
info:tbitmapinfo;
i,j:integer;
begin
b:=tbitmap.create;
b.PixelFormat:=pf24bit;
b.width:=10;
b.height:=10;
b.Canvas.moveTo(0,0);
b.Canvas.LineTo(6,6);
with info.bmiHeader do begin
biWidth:=b.Width;
biHeight:=b.Height;
biSize:=SizeOf(TBITMAPINFOHEADER);
biCompression:=BI_RGB;
biBitCount:=32;
biPlanes:=1;
biSizeImage:=((biWidth*biBitCount+31)div 32)*biHeight*4;//Не обязательно для 24-бит
end;
GetDIBits(b.canvas.handle, B.Handle, 0,B.Height,@a,Info,DIB_RGB_COLORS);
for i:=0 to 9 do begin
s:="";
for j:=0 to 9 do s:=s+inttohex(a[i,j].rgbRed,2)+" ";
memo1.lines.add(s);
end;
image1.picture.assign(b);
b.free;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c