Python Pillow - 圖片滾動



Pillow (Python Imaging Library) 允許我們滾動或移動影像中的畫素資料。此操作可以水平(左或右)或垂直(上或下)移動畫素資料,從而產生滾動效果。

Pillow 中沒有直接的方法來滾動或移動影像畫素資料,但可以使用影像的複製和貼上操作來實現。以下是執行影像滾動步驟:

  • 匯入必要的模組。

  • 接下來載入要滾動的影像。

  • 定義滾動偏移量

    滾動偏移量決定我們想要移動影像的程度。正偏移值將影像向右移動(即水平滾動)或向下移動(即垂直滾動),負偏移值將影像向左或向上移動。我們可以根據所需的滾動效果選擇偏移值。

  • 建立一個與原始影像大小相同的新影像。此新影像將作為滾動結果的畫布。

  • 執行滾動操作,即水平滾動或垂直滾動。

  • 將滾動的影像儲存到檔案。

  • 可以選擇顯示滾動的影像。此步驟有助於視覺化結果,但並非必需。

以下是本章所有示例中使用的輸入影像。

flowers

示例

在此示例中,我們透過將水平偏移量指定為 50 來對輸入影像執行水平滾動。

from PIL import Image
image = Image.open("Images/flowers.jpg")
horizontal_offset = 50  
#Change this value as needed
rolled_image = Image.new("RGB", image.size)
for y in range(image.height):
   for x in range(image.width):
      new_x = (x + horizontal_offset) % image.width
      pixel = image.getpixel((x, y))
      rolled_image.putpixel((new_x, y), pixel)
rolled_image.save("output Image/horizontal_rolled_image.png")
rolled_image.show()

輸出

horizontal rolled image

示例

在此示例中,我們透過將偏移值指定為 50 來垂直滾動影像。

from PIL import Image
image = Image.open("Images/flowers.jpg")
vertical_offset = 50  
#Change this value as needed
rolled_image = Image.new("RGB", image.size)
for x in range(image.width):
   for y in range(image.height):
      new_y = (y + vertical_offset) % image.height
      pixel = image.getpixel((x, y))
      rolled_image.putpixel((x, new_y), pixel)
rolled_image.save("output Image/vertical_rolled_image.png")
rolled_image.show()

輸出

horizontal rolled image
廣告