首頁>技術>

本文連結:https://blog.csdn.net/lxb_wyf/article/details/111593545

Python影象處理-把一個方形圖片以圓形圖的樣式貼到另一張圖上面的指定位置

使用 PIL 模組, 在生成個人的海報頁面, 或者其他頁面, 需要在這張海報上面貼上一個圓形的圖片, 就好比圓形的個人頭像什麼的.

兩張底圖這個是準備轉換為圓形的圖片head_image.jpg底圖(820*512)1608690598-1238475.jpg效果圖(成品圖)吧head_image.jpg貼到底圖的右上角, 並顯示為圓形大小150*150實現程式碼
# 匯入需要的包from PIL import Image, ImageDraw# 底圖base_image = Image.open("./image/1608690598-1238475.jpg")width, height = base_image.size  # 底圖的寬和高# 生成一張尺寸和底圖尺寸一樣 背景色為白色的 "模板"bg = Image.new('RGB', (width, height), color=(255,255,0,0))# bg.paste(base_image, (0, 0))# 頭像尺寸avatar_size = (150, 150)# 載入頭像檔案到 avataravatar = Image.open("./head_image.jpg")# 把頭像的尺寸設定成我們需要的大小, 使用resize 調整圖片的尺寸avatar = avatar.resize(avatar_size)# 新建一個蒙板圖, 注意必須是 RGBA 模式mask = Image.new('RGBA', (150, 150), color=(0,0,0,0))# mask.paste(avatar, (0, 0))# 畫一個圓mask_draw = ImageDraw.Draw(mask)mask_draw.ellipse((0,0, avatar_size[0], avatar_size[1]), fill=(159,159,160))# 這裡儲存可以生成一個蒙版一個正方形中間有一個圓# mask.save("./image/hello_pil_image.png", "PNG")# 吧背景圖 1608690598-1238475.jpg 貼到生成的空白模板中bg.paste(base_image, (0, 0))# # 計算頭像位置  (width-150, 0)就是右上角減去圓形圖的寬# 在把 轉換好的尺寸的 head_image.jpg 貼到 指定位置, - PIL 模組寫入東西的時候都是從左上角開始# 第三個引數是生成好的蒙版圖bg.paste(avatar, (width-150, 0), mask)# 儲存圖片bg.save("./image/hello_pil.png", "PNG")# GUI環境可以使用下面方式直接預覽# bg.show()

PIL 模組寫入東西的時候都是從左上角開始, 所以當寫入一個東西的時候, 想要寫入指定位置, 要先計算寫入東西的尺寸, 然後再計算寫入東西的左上角所在的座標

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 分享一個Linux系統巡檢指令碼