首页 > 其他 > 详细

【项目3】图片旋转

时间:2018-07-04 10:08:06      阅读:178      评论:0      收藏:0      [点我收藏+]
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】图片旋转

原文:https://www.cnblogs.com/bladeofstalin/p/9261552.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!