我在做一个标签生成器(产品的标签)。我能够创建一个2d数据矩阵代码。但是我不知道如何为创建的png设置一个特定的大小。我认为这不是什么代码。但是我在网上什么也没找到。
def createDatamatrix(self):
data = data = 'SN: 1665464'+'nTN: H76vdg/'+'nConfigs:Sample'
self.encoded_data = encode(data.encode('utf-8'))
self.img = Image.frombytes('RGB', (self.encoded_data.width,
self.encoded_data.height),
self.encoded_data.pixels)
self.img.save('test.png')
我找到了一个方法,有什么改进的建议吗?:
def createDatamatrix(self):
try:
size = 12*mm
data = data = 'SN: '+self.sn+'nTN: '+self.tn+'nConfigs: '+self.config
encoder = dme(data)
encoder.save(self.sn+'.png')
self.img = Image(self.sn+'.png', width=size, height=size)
except Exception:
print("Error CreateDatamatrix")
您可以创建一个白色的图片,然后将数据矩阵粘贴到某个位置
import pylibdmtx.pylibdmtx as dmtx
from PIL import Image
# Create the datamatrix
message = b'YourDataHere'
encoded = dmtx.encode(message)
# Convert the raw output to a PIL Image
datamatrix = Image.frombytes('RGB', (encoded.width, encoded.height), bytes(encoded.pixels))
# Convert to binary black and white
datamatrix = datamatrix.convert('1')
# Resize datamatrix to desired size
dm_size_px = (120, 120)
datamatrix = datamatrix.resize(dm_size_px, Image.NEAREST)
# Create white picture
picture_size_px = (250, 250)
picture = Image.new('RGB', picture_size_px, color='white')
# Position the datamatrix
barcode_position_px = (65, 65)
picture.paste(datamatrix, barcode_position_px)
# Save the image
picture.save("datamatrix.png")