Tôi có hình nền png làm nền và tôi muốn thêm lưới trong suốt vào nền này nhưng điều này không hoạt động như mong đợi. Hình nền được chuyển thành minh bạch ở những nơi tôi áp dụng lưới trong suốt.Kết hợp nền với hình ảnh trong suốt trong PIL
tôi đang làm:
from PIL import Image, ImageDraw
map_background = Image.open(MAP_BACKGROUND_FILE).convert('RGBA')
map_mesh = Image.new('RGBA', (width, height), (0, 0, 0, 0))
draw = ImageDraw.Draw(map_mesh)
# Create mesh using: draw.line([...], fill=(255, 255, 255, 50), width=1)
...
map_background.paste(map_mesh, (0, 0), map_mesh)
Nhưng kết quả là:
Bạn có thể thấy một mô hình bàn cờ nếu bạn xem xét cẩn thận (được sử dụng trong các chương trình đồ họa như là không có nền). Các đường trong suốt cũng làm cho lớp nền trong suốt ở những nơi cả hai lớp đều gặp nhau. Nhưng tôi chỉ muốn dòng trong suốt được thêm vào trên nền.
tôi có thể giải quyết nó với:
map_background.paste ((255.255.255), (0, 0), map_mesh)
nhưng khi tôi sử dụng màu sắc khác nhau cho các dây chuyền khác nhau, tôi sẽ phải làm cho mọi màu sắc quá trình này. Nếu tôi có 100 màu, thì tôi cần 100 lớp không phải là giải pháp tốt lắm.
Có thể trùng lặp của http://stackoverflow.com/questions/5324647/how-to-merge-a-transparent-png-image-with-another-image-using- pil –