读书人

怎样90度旋转和水平垂直翻转一幅大的r

发布时间: 2012-02-16 21:30:36 作者: rapoo

怎样90度旋转和水平垂直翻转一幅大的raw图像或bmp图像?
有一超大图像6500*7500 pixel raw图像数据需要翻转,请问怎么做才较快速和节约内存?我想直接操作raw数据,应该怎么操作?

[解决办法]
九十度旋转不就是一个矩阵的转置吗?
180度也就是一个矩阵的操作啊
180
For i = 0 To MaxI
For j = 0 To MaxJ
tX = Width - j
tY = Height - i
Temp = MapArrRGB(j, i) 'DataArr(x,y)
MapArrRGB(j, i) = MapArrRGB(tX, tY)
MapArrRGB(tX, tY) = Temp
Next
Next

90
For i = 0 To MaxJ
For j = 0 To MaxI
MapArrRGB(i, j) = OldDataRGB(MaxI - j, i)
Next
Next
[解决办法]
结果要不要显示啊?,不要显示可不可以读一部分数据然后旋转在保存到文件,不过这个写文件的过程不好处理,常有数据的插入!
[解决办法]
用浮点形式的旋转矩阵,后期要做滤波,就是将浮点坐标像素转换到整数坐标

读书人网 >.NET

热点推荐