1.图像平移
图像平移只是改变图像在屏幕上的位置,图像本身并不发生变化。
假设原图像区域左上角坐标为(x0,y0),右下角坐标为(x1,y1),将图像分别沿x和y轴平移dx和dy,则新图像的左上角坐标为(x0+dx,y0+dy),右下角坐标为(x1+dx,y1+dy)。
在屏幕上实现图像的移动分为四个步骤:
⑴保存原图像到缓冲区。
⑵擦除原图像。
⑶计算平移后的新坐标。
⑷在新的坐标位置重新显示原图像。
2.图像颠倒
图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。分析图像颠倒的过程,可发现每行的图像信息都保持不变,而只是改变了行的顺序,将第一行与最后的第n行相互交换,第二行与第n-1行交换??,依此类推,从而实现了图像的颠倒。只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。
3.图像镜像变换
镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现:每行图像信息的处理方式是相同的,而且行顺序不发生变化,只是每一行的像素信息按从左到右的顺序进行了左右颠倒,从而实现了镜像变换。因此,采用按行逐点变换的方式实现图像的镜像。
4.图像旋转
图像旋转是指把定义的图像绕某一点以逆时针或顺时针方向旋转一定的角度,云南电脑培训http://www.kmbdqn.cn/认为通常是指绕图像的中心以逆时针方向旋转。
原型:int WINAPI icePub_imgCircumgyrate(char *strImgFilename,char *strBmpFilename,int radian)
输入:strImgFilename 待处理图像文件名
strBmpFilename 结果bmp文件名
radian 旋转角度
输出:
typedef int (WINAPI ICEPUB_IMGCIRCUMGYRATE)(char *strImgFilename,char *strBmpFilename,int radian)
ICEPUB_IMGCIRCUMGYRATE *icePub_imgCircumgyrate = 0
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll")
if(hDLLDrv)
{
icePub_imgCircumgyrate=(ICEPUB_IMGCIRCUMGYRATE *)GetProcAddress(hDLLDrv,"icePub_imgCircumgyrate")
}
if(icePub_imgCircumgyrate)
{
icePub_imgCircumgyrate("a.jpg","a1.bmp",45)
icePub_imgCircumgyrate("d.png", "d1.bmp",120)
}
if(hDLLDrv)
FreeLibrary(hDLLDrv)
不知道你的zz.txt里面是怎么写的,但是首先:a[i][j] = " "
b[i][j] = " "
这个就是不对的,需要用字符给a[i][j],b[i][j]赋值,而不是字符串," "相当于一个' '加上\0
应该是:
a[i][j] = ' '
b[i][j] = ' '
其他的问题需要看看你的txt里面的内容再调试