T
taizhi
Unregistered / Unconfirmed
GUEST, unregistred user!
从网上搜索到旋转90度的代码如下:<br>procedure Rotate90(const Bitmap:TBitmap);<br>var<br> i,j:Integer;<br> rowIn,rowOutRGBTriple;<br> Bmp:TBitmap;<br> Width,Height:Integer;<br>begin <br> Bmp:=TBitmap.Create;<br> Bmp.Width := Bitmap.Height;<br> Bmp.Height := Bitmap.Width;<br> Bmp.PixelFormat := pf24bit;<br> Width:=Bitmap.Width-1;<br> Height:=Bitmap.Height-1;<br> for j := 0 to Height do<br> begin<br> rowIn := Bitmap.ScanLine[j];<br> for i := 0 to Width do<br> begin<br> rowOut := Bmp.ScanLine;<br> Inc(rowOut,Height - j);<br> rowOut^ := rowIn^;<br> Inc(rowIn);<br> end;<br> end;<br> Bitmap.Assign(Bmp);<br>end; <br>想请教各位以下几个问题:<br> 1、 rowIn := Bitmap.ScanLine[j];是什么意思?<br> 2、Inc(rowOut,Height - j);有什么作用?<br> 3、该过程只对于24位文件有效,如果是32位呢?旋转出来的效果变成黑白色了,这该怎么修改?