Tôi đang tìm cách hiệu quả nhất để 'hình vuông' một hình ảnh để sử dụng làm biểu tượng. Ví dụ: tôi có tệp .png có kích thước là 24x20. Tôi không muốn thay đổi phần 'hình ảnh' của hình ảnh theo bất kỳ cách nào, tôi chỉ muốn thêm pixel trong suốt vào cạnh của hình ảnh để nó trở thành 24x24. Nghiên cứu của tôi cho thấy rằng tôi cần tạo một canvas 24x24 trong suốt, dán hình ảnh của tôi vào đó, sau đó lưu kết quả. Tôi đang làm việc trong wxpython và đã tự hỏi nếu có ai có thể hướng dẫn tôi qua quá trình này. Tốt hơn, tôi cũng đã cài đặt PIL, và đã tự hỏi nếu không có một cách tích hợp để làm điều này. Nó có vẻ giống như các loại hình hoạt động sẽ được thực hiện khá thường xuyên, nhưng không có phương pháp hình ảnh nào phù hợp với hóa đơn.Chèn hình ảnh để sử dụng trong wxpython
5
A
Trả lời
3
Sử dụng image.paste để dán hình ảnh nền trong suốt:
import Image
FNAME = '/tmp/test.png'
top = Image.open(FNAME).convert('RGBA')
new_w = new_h = max(top.size)
background = Image.new('RGBA', size = (new_w,new_h), color = (0, 0, 0, 0))
background.paste(top, (0, 0))
background.save('/tmp/result.png')
3
Bạn có thể làm điều đó với mảng NumPy khá dễ dàng .. một cái gì đó như thế này
import matplotlib.pyplot as plt
import numpy as np
im1 = plt.imread('your_im.png')
im0 = np.zeros((24, 24, 4), dtype=im1.dtype)
im0[2:-2,:,:] = im1
plt.imsave('your_new_im.png', im0)
+0
Ý tưởng hay. Bạn có thể sử dụng 'scipy.pad', đặc biệt nếu nó không chỉ là 2 hàng. – Mark
1
Dưới đây là một wxPython thực hiện thuần túy.
import wx
app = wx.PySimpleApp()
# load input bitmap
bitmap = wx.Bitmap('input.png')
# compute dimensions
width, height = bitmap.GetSize()
size = max(width, height)
dx, dy = (size - width)/2, (size - height)/2
# create output bitmap
new_bitmap = wx.EmptyBitmap(size, size)
dc = wx.MemoryDC(new_bitmap)
dc.SetBackground(wx.Brush(wx.Colour(255, 0, 255)))
dc.Clear()
dc.DrawBitmap(bitmap, dx, dy)
del dc
# save output
image = wx.ImageFromBitmap(new_bitmap)
image.SetMaskColour(255, 0, 255)
image.SaveFile('output.png', wx.BITMAP_TYPE_PNG)
Các vấn đề liên quan
- 1. Hiển thị hình ảnh .png trong cửa sổ trong wxPython
- 2. Chèn hình ảnh bằng cách sử dụng Jade và NodeJS
- 3. VBA để chèn hình ảnh nhúng excel
- 4. Chèn hình ảnh Three.js
- 5. Chèn hình ảnh vào ggplot2
- 6. DOM appendChild để chèn hình ảnh
- 7. Làm thế nào để thay đổi kích thước và vẽ một hình ảnh bằng cách sử dụng wxpython?
- 8. Xóa nền trong matplotlib bằng cách sử dụng wxPython
- 9. Chèn hình ảnh vào openpyxl
- 10. sử dụng pyodbc trên ubuntu để chèn một lĩnh vực hình ảnh trên SQL Server
- 11. Sử dụng javascript để in hình ảnh
- 12. cách chèn hình ảnh vào mẫu email
- 13. Chèn hình ảnh bằng PHP và FPDF
- 14. vấn đề hiển thị wxBitmaps bằng cách sử dụng wxPython
- 15. Chèn hình ảnh vào tệp XML
- 16. sử dụng ScreenUtils để lưu ảnh chụp màn hình dưới dạng hình ảnh trong libgdx
- 17. Có thể sử dụng Panda3D bên trong ứng dụng wxPython không?
- 18. Sử dụng hình ảnh JPEG cho hình ảnh Launch
- 19. Chèn hình ảnh vào tệp xml bằng cách sử dụng C#
- 20. Chèn hình ảnh vào tiện ích chrome
- 21. Làm cách nào để chèn hình ảnh bằng HTML.ActionLink?
- 22. Cách chèn Hình ảnh vào Siêu liên kết trong GWT
- 23. Rails 3.1 sử dụng hình ảnh trong ứng dụng/tài sản/hình ảnh/thư mục con
- 24. Chèn hình ảnh vào ô bảng trong Javascript
- 25. Tìm hình ảnh chưa sử dụng trong ứng dụng Rails?
- 26. Auto-Completion Trong wxPython wxComboBox
- 27. Hình ảnh ràng buộc tải chậm vào hình ảnh mới được chèn sau yêu cầu ajax
- 28. Sử dụng python PIL để biến hình ảnh RGB thành hình ảnh đen trắng tinh khiết
- 29. Cách sử dụng Resources.resx để liên kết hình ảnh
- 30. Trình chỉnh sửa HTML JavaFX - Chèn chức năng hình ảnh
Đã chấp nhận điều này làm câu trả lời về cách tiếp cận gọn gàng vì nó sử dụng PIL mà tôi đã cài đặt. Cảm ơn đã giúp đỡ. –