如何防止网站被镜像,微信公众号里的网站怎么做的,天通苑网站建设,线上推广员是做什么的1#xff0e;图像平移 图像平移只是改变图像在屏幕上的位置#xff0c;图像本身并不发生变化。假设原图像区域左上角坐标为(x0, y0)#xff0c;右下角坐标为(x1, y1)#xff0c;将图像分别沿x和y轴平移dx和dy#xff0c;则新图像的左上角坐标为(x0 #xff0b; dx, y0 图像平移 图像平移只是改变图像在屏幕上的位置图像本身并不发生变化。 假设原图像区域左上角坐标为(x0, y0)右下角坐标为(x1, y1)将图像分别沿x和y轴平移dx和dy则新图像的左上角坐标为(x0 dx, y0 dy)右下角坐标为(x1 dx, y1 dy)。坐标平移变换公式为 x′ x dx y′ y dy 在屏幕上实现图像的移动分为四个步骤 ⑴ 保存原图像到缓冲区。 ⑵ 擦除原图像。 ⑶ 计算平移后的新坐标。 ⑷ 在新的坐标位置重新显示原图像。 其中擦除原图像的方法与图形变换中擦除原图形的方法一致在实现中仍采用XOR异或方式画图擦除原图像。对于新坐标值的计算还需要考虑边界情况不要在图像平移后超出允许的屏幕范围。此外如果采用C函数getimage()和putimage()来保存和恢复图像则图像的大小不能超过64K。 2图像颠倒 图像颠倒是指把定义好的图像区域上下翻转地显示在屏幕上。分析图像颠倒的过程可发现每行的图像信息都保持不变而只是改变了行的顺序将第一行与最后的第n行相互交换第二行与第n 1行交换……依此类推从而实现了图像的颠倒。只需采用按行交换的方式即可方便地修改缓冲区内容实现图像的颠倒。基本步骤如下 (1) 用getimage()保存原图像并擦除原图像。 (2) 计算图像的高度即行数height计算图像宽度width计算保存一行图像信息 height bottom top 1; width right left 1; linebytes (width 7) 8 4; (3)利用行交换缓冲区linebuf在图像内存缓冲区中进行信息交换即把第一行与最末行交换第2行与第n1行交换……依此类推直至 全部交换完毕。 (4)把交换后的图像缓冲区内容重新显示在屏幕上。 3图像镜像变换 镜像变换是指将指定区域的图像左右翻转地显示在屏幕。分析镜像变换过程可以发现每行图像信息的处理方式是相同的而且行顺序不发生变化只是每一行的像素信息按从左到右的顺序进行了左右颠倒从而实现了镜像变换。因此采用按行逐点变换的方式实现图像的镜像。 首先对于左上角为left, top)右下角为right, bottom)矩形区域图像给出其中任意点x0, y0镜像变换后的新坐标x′, y′的坐标变换公式 x′ right x0 left y′ y0 根据以上公式对各个像素点计算新坐标后直接把它显示在屏幕的相应位置上。 如果完全逐点地进行交换处理一个像素点就要读取一次像素值从而降低了变换速度。由于像素点是顺序存放在各个bit位上每读取一个字节就包含了8个像素点的信息只需设置不同的位屏值bitmask就可以获得不同像素点的信息。因此采用按行逐字节变换的方式每读一次就进行8个像素点的变换以提高变换速度。 将一矩形区域的图像进行镜像变换的基本步骤如下 (1) 用getimage()把图像保存到内存缓冲区并擦除原图像。 (2) 计算图像高度即行数高度height和宽度width计算保存一行图像信息占用的字节数linebytes。计算公式如下 height bottom top 1; width right left 1; linebyte (width 7) 8 4; (3) 对图像进行镜像。 (4)释放内存图像缓冲区。 4图像旋转 图像旋转是指把定义的图像绕某一点以逆时针或顺时针方向旋转一定的角度通常是指绕图像的中心以逆时针方向旋转。 假设图像的左上角为left, top),右下角为right, bottom)则图像上任意点x0, y0绕其中心xcenter, ycenter)逆时针旋转angle角度后新的坐标位置x′, y′的计算公式为 xcenter (right left 1) 2 left; ycenter (bottom top 1) 2 top; x′ (x0 xcenter) cosθ (y0 ycenter) sinθ xcenter; y′ (x0 xcenter) sinθ (y0 ycenter) cosθ ycenter; 与图像的镜像变换相类似也采用按行逐点变换的方式实现图像的旋转其步骤如下 (1) 用getimage把图像保存到内存缓冲区并擦除原图像。 (2) 计算图像高度height宽度width及保存一行图像信息占用的字节数linebytes计算公式与镜像变换的计算公式相同。 (3) 对图像逐行进行旋转变换。 (4) 释放内存图像缓冲区。 值得指出的是这种处理方法不够。为此可以采用另一种方法先在图像变换缓冲区中处理完毕后再将变换后的图像一次显示在屏幕上。这样可以取得较好的显示效果。