只旋转部分图片python

时间:2016-08-28 05:07:46

标签: python image rotation python-imaging-library python-3.4

有人可以告诉我如何只旋转部分图像:

this

如何查找此图像的坐标/中心:

image

我可以使用此

旋转所有图片
from PIL import Image

def rotate_image():
img = Image.open("nime1.png")

img.rotate(45).save("plus45.png")
img.rotate(-45).save("minus45.png")

img.rotate(90).save("90.png")
img.transpose(Image.ROTATE_90).save("90_trans.png")

img.rotate(180).save("180.png")


if __name__ == '__main__':
rotate_image()

2 个答案:

答案 0 :(得分:1)

您可以裁剪图片的某个区域作为新变量。在这种情况下,我从原始图像中裁剪出一个120x120像素的盒子。它旋转90度,然后粘贴在原件上。

import net.time4j.Month;
import net.time4j.range.CalendarMonth;
import net.time4j.format.expert.ChronoFormatter;
import net.time4j.format.expert.PatternType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

import java.text.ParseException;
import java.util.Locale;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

@RunWith(JUnit4.class)
public class CalendarMonthTest {
    @Test
    public void parse2() throws ParseException {
      assertThat(
        ChronoFormatter.ofPattern(
            "yyyyMM'00'",
            PatternType.CLDR,
            Locale.ROOT,
            CalendarMonth.chronology()
        ).parse("20150100"),
        is(CalendarMonth.of(2015, Month.JANUARY)));
    }
}

enter image description here

所以我想了一下这个并且制作了一个在旋转之前将圆形蒙版应用于裁剪图像的功能。这允许任意角度而没有奇怪的效果。

SimpleDateFormat

enter image description here

答案 1 :(得分:0)

你可以这样解决这个问题。假设您有img = Image.open("nime1.png")

  1. 使用img2 = img.copy()
  2. 创建图像的副本
  3. 使用img2.crop()在所需位置创建img2裁剪。您可以阅读如何执行此操作here
  4. 使用img.paste()
  5. 将img2粘贴到适当位置的img上

    注意:

    要查找中心坐标,可以将宽度和高度除以2:)