From 774366a736cd7a903c5d58c528be4a49787eaa21 Mon Sep 17 00:00:00 2001 From: kevin Date: Tue, 19 Sep 2023 19:30:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BA=8C=E7=B6=AD=E7=A2=BC?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- barcodes.png | Bin 0 -> 35021 bytes begin.py | 179 +++++++++++++++++++++++++++++++++++++++++++++++++-- favicon.png | Bin 0 -> 8422 bytes temp.png | Bin 0 -> 4588 bytes test.png | Bin 0 -> 589 bytes test.png.png | Bin 0 -> 3976 bytes test.png.svg | 39 +++++++++++ test.py | 71 ++++++++++++++++++++ 8 files changed, 284 insertions(+), 5 deletions(-) create mode 100644 barcodes.png create mode 100644 favicon.png create mode 100644 temp.png create mode 100644 test.png create mode 100644 test.png.png create mode 100644 test.png.svg create mode 100644 test.py diff --git a/barcodes.png b/barcodes.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a5f8062d9bf887a1ba4de617214e1e1ab294b2 GIT binary patch literal 35021 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 literal 0 HcmV?d00001 diff --git a/test.png b/test.png new file mode 100644 index 0000000000000000000000000000000000000000..041c94fec760772a8884a5962161e2121b721562 GIT binary patch literal 589 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)OEIU=s0kaSW-L^Y+p~-UA8(2R2;# zTW&W^!O7_xOJ&O0GwjR%ZfCBTywO9VyJeIZAz^TYO_7VG_vWhJ>A+;d;OXk;vd$@? F2>`Xk@TdR) literal 0 HcmV?d00001 diff --git a/test.png.png b/test.png.png new file mode 100644 index 0000000000000000000000000000000000000000..e73a164162ed54c3773dbf8f49811b47b52006db GIT binary patch literal 3976 zcmeHKX;f2JyT;PmsuX&!6_hfxD*7=-Dj36%$lNfBVJKrj2t$CVgh8gnLPcb@OjU*` zR1g`$3?V=YC}a&RXZk+54P*-u=GM^SsZ# zf7RaV>!XTCrKF_3M*d`eO-kyJ2Dndt^%)rP=V;AJNy#}N%}tzc7p>34U3J2!{<&>& z=!OjNw6VILsxrF6_XOlbgXYjs}Jw?WhHx6?sqPNw(% zp+5FG^83Vhu_lhZ%tX(#wF5ok{-Gk6^qQ}40b!niAQrz2B=NMiFpxkd=gsVFt@QW4 zcXmFL5?c`Noa9Qs$X5M6St6yo_+`ouh$}L}L)Tx)ePafu`nw7zySq&$TxKT&MAz>{ zw?_(J>Qr#Jsmjm#BTo8=Ds*T;!Xjn)(AS~LxGuG08+;XNhqjk@eZ|0q)=L@2QG2C* z*JDMRPgaEjb8+Dub+az7P4KV(_y2_Q@2US=n15&EpR#eeskPOHe5ejJE&gBh{>>yQ zJym#vZfn|2x=bSlxx+HFcf;+FPm=VY< z(bmuyS>-={`cwhp-9gxo4GRkk38|t|#ar)t&)XMW#xD<2@GAxevkQpIewDa2u!2GH z(A*rYy4p4tc90hp7rr`HQ&dzGHq}z&-5ERE5%bG0za)Jr=hAh;*Vi}SHk{8HZ4P0J zL?SHFk92$fewkGk)*&x9*Z(#16_W|k*B_OiyF+#L@p=5QPb3!Gke6tFRzhbdr=Wv; zkKfTjLC@3}A0iCSpRaiF!aSo=Ymm7(6Ft|=fX>(YlZ4yTObrtglkcFoK_-(H!wbOU zd3ltBr}q!0q{$LZMKRD&`JA@+v(&J$1a={a>FJD~me>jb)Pd zodF1KM~^l>K5lkTHaIIdDCnedY}1cC=v=%XL^OyKYCOhl^>4nrf}u7yk51Qti09|$OG`_8dU{4iMgUmA#o=(e zlfI0Ljm=bog^PAR0t`5+EW7piT<{MFD6gnckeBzSMy(GO8`jp=s{Hp=W|?tRR<^__ zhWqQ0<3+{A)M9Hg`(TIVK-=G)8m)3IEG*oYNY2?k`c_%l7(@SdfQ=_VAna&XD=_!9 za&vOZ2G^FBFbtGl@MgPFSIpV>-;u$$rxJ1HZLZMKPM#Exz_Sjg^xd(k!EUYnwpkY<6UfDVUP;w7PJxe0f)oUqX-1TW>mxyJ;Hr;7+sOy#S zMyKZZ7KJn%BqJy18gT5Zubx#_))Vd`BwI;bjm(@JRO`w&K(?g6ll*1Le;C z!R)Zi1+mrc-u8l*{WTQoV(9n<{;S82A4jf^VKA7{u`%~HE`XtiYgSqsOQpIa1?$S( zf5i+CzI^fGAE=m^m|_HR)+H@HE6X+Tu`YLoMBEtG?MqDj43EMD1UzS2xLm$`IUR81 zea~HhU9fS*w23<3r0^P5qQp^rDN|8DRkD^@!$pzg7daektaGo6yN5@ArgGKbjSZa; z#v}dwdx511Xm=;4owY_L)^mo%!n13=mTPMX6Bl7HH}R#zpMO5?OE3~N{*s=a9z7e= z-(-CA-JgJR4n>!TlX-GVm#-$AU0@;(){M^S>qi11puYq}ya7}M>>Hr+aFWUXnS;HB zEbZw{Fw)r2U~OYV+nY~Q@V;$ANxJ6b;$mrG@mDVzsH#HKg0a|?f!ObETDZ4G?7Zup-KAhx_-Iq0|k(1m91ebRrRUu?QP;dpIvyP>#q(H9W9Vm zWkswE6|1a^p4?M$ufJ~L?mme)kl;ZJ@S;Xpn43SFJ12kqILgg!LYT@qBR{jz)Y8&o zRn-p7COOmT^q$^cKyzCKHW{s|tURM&_@iP5J!%D-mY0`T3{RMBG6v)xAOAU{vKoeY zJv9{v3IKEv2niexFNch=*_$)eR-O<4NdM%fIyFHYWoKtcb{!=?KyQLJIrvE51{Tp0 zFXRHb-yQDK@$PsQs!0>1@>ZCdQ!^!kn~SghW0igU+i!RHY_z5V)#!<1Lfwgtj++PV{Lh(Mqha+XI}tgwbZ2=^qhy+L|IBm@EiVMc5d55(we z*M94JudfLN*|Y6tchma({ErEu9a-tOf_uQHEH4M+aNf<>yc(CMUHv>BZ#8@{4bl}f zc|kGb)~#D!nUomb^6vUnSo3p&B}a`-HQ$sq>JV|N=*=au9QE~H^fHijD@)6Oz`zhW z8+-ex@bGI{^a>Ke-OVi+=iGW@ z&V{6ZW8=yI$YJhX7!0Nik8k7A4V9+qs-)!>*$Wc5WXo(xLk=OiX<=cp8TFSu6rMW; z3-`CRwY9cR^(K?6tMyLG0NMaEHPw29bSdnS$o1ld3vZ@{=A5KYX2~)WO~I^(7Xxk2 zi;E2+u><+qXDrj-e2kEll?4uFW;sx#rEX=_|B+SE|MDd!FtDJYpcTl9o?ekbqy`*5 zt5=Bp>8F%Fh7<8pWljzY1V9AMxxBnQH8mBy#}X0@ig9lqn=D3Wp@^d2)#Bsh4IE10 zMHtEu?SnNz{-}%$aCq&MLKiQu86nI!5EwU}b{7=8W^x;n*9Lt8=K(ks$=0ngp zlIo>yJdN-tgAoQC9H>$6Jvk_}Z)V0=Q`2U_P6Mdukt0Vqy-8zf>FGw{iz&NP(}!hF zX6NQMg)dp-N&M>uHsi@v9IL%*1zjLw+M1e%x8}`}$k+FepRe_#00~2Rc!Y>lGm~YN zIqU1jzCFLHqsp~@uDg=(C=mvL<>uxl7Hm4$+Yd1q+7Jj-F$3@cxW~+tl$6xek!P(* zpqYVZ6~ic7G8+v-2M8%Q!w(G&^(KD}boF<=;A>7!xoUz|U|ENUw|Ptiy1^fL&%xlB ztZWOFP^z_$N31ug;Ty(~ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 123asd + + diff --git a/test.py b/test.py new file mode 100644 index 0000000..c4687c1 --- /dev/null +++ b/test.py @@ -0,0 +1,71 @@ +from PIL import Image, ImageDraw,ImageFont +from barcode import Code128 +from barcode.writer import ImageWriter +import qrcode + +# 定义图像大小和条形码大小 +image_width = 2479 +image_height = 3508 +qrcode_size = 250 +# 创建一个空白图像 +image = Image.new("RGB", (image_width, image_height), (255, 255, 255)) +draw = ImageDraw.Draw(image) + +# 条形码配置 +barcode_options = { + "writer": ImageWriter(), + "output": 'temp', # 输出格式,可以是文件名或字节流 +} + +# 在图像上生成多个条形码并放置它们 +x_position = 50 +y_position = 50 + + +# 生成条形码 +barcode = Code128("test", writer=barcode_options["writer"]) +barcode_file = barcode.save(barcode_options["output"]) + +# 打开生成的条形码图像 +barcode_image = Image.open(barcode_file) + +# 将条形码添加到图像上 +image.paste(barcode_image, (x_position, y_position)) + +# 更新下一个条形码的位置 +y_position += 120 + +# 在条形码下方添加自定义文本 +custom_text = "Custom Text 123" +text_color = (0, 0, 0) # 文本颜色(黑色) +# 设置字体大小 +font_size = 100 +font = ImageFont.truetype("fonts/arial", font_size) # 替换为你自己的字体文件路径 + +# 创建一个Draw对象并将文本添加到图像上 +text_draw = ImageDraw.Draw(image) +text_draw.text((x_position, y_position + 120), custom_text, fill=text_color, font=font) + +# 更新下一个条形码的位置 +y_position += 220 + + +# 生成二维码 +qr = qrcode.QRCode( + version=1, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=10, + border=4, +) +qr.add_data("QR Code Data456") +qr.make(fit=True) + +qr_image = qr.make_image(fill_color="black", back_color="white").resize((qrcode_size, qrcode_size)) + +# 将二维码添加到图像上 +image.paste(qr_image, (x_position, y_position)) +# 保存生成的图像 +#image.save("barcodes.png") + +# 显示图像(可选) +image.show()