项目3图片旋转

Posted bladeofstalin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了项目3图片旋转相关的知识,希望对你有一定的参考价值。

from PIL import Image
import math

#移动一个像素点
def rorate(i, j, width, height):
    #给出sin90°和cos90°的值
    sin = math.sin(math.pi * 90 / 180)
    cos = math.cos(math.pi * 90 / 180)
    #对左上角坐标系的点,求出其在中心坐标系的坐标
    x = i - 0.5 * width
    y = 0.5 * height - j
    #求中心坐标系顺时针旋转90°后的坐标
    r_x = x * cos + y * sin
    r_y = y * cos - x * sin
    #换算成左上角坐标系的坐标
    i = r_x + 0.5 * height
    j = 0.5 * width - r_y
    i = int(i)
    j = int(j)
    return (i - 1, j)

# print(rorate(0 ,0, 111, 120))

def rorate_left(image):
    """
    image 是一个 Image 对象
    返回一个全新图像,它是 image 左转 90 度后的图像
    """
    img1 = Image.open(image)
    img_size = img1.size
    width = img_size[0]
    height = img_size[1]
    img2 = Image.new(RGB, (height, width))

    position = (0,0)
    for i in range(width):
        for j in range(height):
            color = img1.getpixel((i, j))
            position_x = j
            position_y = width - i - 1
            img2.putpixel((position_x, position_y), color)
    img2.save(a2.jpg)

# rorate_left(‘a.jpg‘)

def rorate_right(image):
    """
    image 是一个 Image 对象
    返回一个全新图像,它是 image 右转 90 度后的图像
    """
    img1 = rorate_left(image)
    img2 = rorate_left(a2.jpg)
    img3 = rorate_left(a2.jpg)



rorate_right(a.jpg)



def rorate_180(image):
    """
    image 是一个 Image 对象
    返回一个全新图像,它是 image 旋转 180 度后的图像
    """
    img1 = rorate_left(image)
    img2 = rorate_left(img1)
    img2.save(a4.jpg)


# rorate_180(‘a.jpg‘)

 

以上是关于项目3图片旋转的主要内容,如果未能解决你的问题,请参考以下文章

使用导航抽屉旋转时的片段更改

处理屏幕旋转上的片段重复(带有示例代码)

使用 ActionBar 旋转 Android 的双片段

Butterknife 片段旋转给出 NullPointer

开源项目3:微信小程序AR和Three.js实现全景图片3D查看器方向传感器旋转

图片旋转对于识别模式带来的变化