用户:
疯癫花生迷查看:3 回复:10 评论:3 创建时间:2020-08-29T20:20:00

目的:是一张图片变成文本类型
效果:
所需库:pyplot,Image
导入库所需代码:
from PIL import Image
import matplotlib.pyplot as a
其次,我们需要将其保存入文件夹,此文件夹必须要有你想转换的图片(如图二)

(图一)

(图二)
按照下列代码写出宽和高:
width, height = (60, 60)
打开图片,并将其像素化(3600像素),并转换成灰度图:
img = Image.open('bcm.jpg').convert('L').resize((width, height))
plt.rcParams['image.cmap'] = 'gray'
课程给了我们70个常见符号,设置一个变量为符号的集合变量,命名随你:
HSM = '''$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. '''
#因为在这些代码中,包含单引号和双引号,所以圈它们要用“'''”
再设置一个变量为txt,作为储存字符的关键。紧接着,我们要以先开始设置的高变量和宽变量设置成一个循环节(见下列代码),我们再用“gray = img.getpixel(变量1)”将其像素化后的色度识别,在这里,运用灰度色谱(见图三)将灰度图分为70个阶段(因为有70个符号),用这行代码知道其所处阶段,化为此符号(上面的70个符号都是按照其密度排行,不必操心其色度不对称等问题),按照此规律,变为比例:gray:256*70。按此比例,得此代码:
txt = ''
for y in range(height):
for x in range(width):
pos = (x,y)
gray = img.getpixel(pos)
index = int(gray/256*70)
(图三)
然后进行递增,其次换行,最后打印txt变量,则需要加上:
txt = ''
for y in range(height):
for x in range(width):
pos = (x,y)
gray = img.getpixel(pos)
index = int(gray/256*70)
txt += SDAA[index]
txt += '\n'
print(txt)
程序完成!

全部代码:
from PIL import Image
import matplotlib.pyplot as plt
width, height = (60,60)
img = Image.open('某个图片').convert('L').resize((width, height))
plt.rcParams['image.cmap'] = 'gray'
SDAA = '''$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. '''
txt = ''
for y in range(height):
for x in range(width):
pos = (x,y)
gray = img.getpixel(pos)
index = int(gray/256*70)
txt += SDAA[index]
txt += '\n'
print(txt)

——携手并进,共创辉煌——
不知道该叫啥的一只萌新呃呃呃原图:
现在的图:
+^
. i` ,.
': ` ):
'> ,. " :' ,, (:
['1: `- (: (1 :'
;+~+: +.t, I] (: :u1
t*o*| 1 _I :' \u^
t*o*v+<+r++: ~' :cv"
;+~<v*oaoa*| ^ /vv\
|*ohqh*u<>>>><, ',. :Y|\L
'i,+~~>~~rbppppb) l}^ tY:Ia.
^} /okbbkWc+~~<~+?[` :z\ lo- ". ".
.t, (){}[{vL*ooph*f. /c^ fmw. }, },
1" .\++[}]/z*oaohoxi><~<<~vr,`urO<: :~..z; "'z:
^ urnwhQz]+~>j~!tpwdkdbhf|j<)I;z\ \a``h, ?lh^
^>>>;^i>xjXOpYf: .+~!vM*aha&$vuwrr-IX\ jo`"h^ .fikI.
1wZmj_0J[~t!l:" }ibobzz(-)Xmk*#**am?, _? :z `zlu?,
{m0mn(0J[+]l;I,^il/+doO}}, ~jtOdhpqk*)<><~)+":[ ^Y+[j;
.;;>~flinu!COZx[OY}\!i~i: tzl>-cil!Uoppkaam}:'^ 'cjIO,
.>~<<ilI ^)' cX^LZZvfOJ}(I"."^>iuf :[ :,{dqdbadhv1>[ "喵^O^
^qhkbbdm'.,[^f\.i>!~ji-/IOu^.~dmn; 1,>CY^!l_>~~zmadm'ic[,n.
"8$$$$$$^ {!\? ',1 `1.8Y^ >&M) ,.\~\0Ci^I!. <j0k&h'[v!^]
^pb$$$$$` :}t> {:, ,^*?. .YO, ("[ZY+i0j0v? wu(?UU ju^."
`OCqbbbql' ct< .j, "o< ,rJ ("<&z Mu&ufl%n[^f|`z/
`wv><<<>|: ^o\1 ^t. "M( \UO^ :.:*] `o_a;cxo/j!t!<U-
`qr (: ,o}) ~j "Wj :zxp, ^hi "h;h"tCh[c~[`1zI
`qx :' ;c<- jz "Wj /zla, `h> "aI*):XW!c+".xr'
`qx :1_~ cf". "W|:Y/ #" Ia] "a:du |m"x+ ,z1 ".
`qx ^+f- jI}, "M+\Y:"*" }#t ^o`Xv "?'(> ~Y> ],
`qx :^lr[I>f!u; ,h]z/ ~W" [bu ih.xv `[l{i )c" .n;
`qx (:`{{|pvv0" ,Zzz: \$" "Yv \p uu [h/1> u/. ^w,
`qx (,.1jLWLbk^ "OJ| JW` nv v0 vz j&ut>`z- ,w^
`qx :.`nO&Cb8&" .dr` *L. uu vz uQ nYjz!:n, :n.
`qx `Y0d|Omm^ ;bu;>_&| vc vu jp uf}v!-f. ,]
`qx `U|<l1!>. (ZmXwkk; vY uv {o.un,)>x(. ."
`qr `J] .-' :nJMM$$b., rO vv ~#.uu (?U|,
`w/ `C) t1 /cu$$$$M") |a.cc :o.xu.X\Xj<
`mu>><<. `C| )j :zcYkkkba1( -M^U/ ^a`zn,Yuuf{
`0pqpkb" `C( ,\` /cna{<<<JkI ;o:Z> "a"Zj<|Yf1f.
`QM$$$&~ :' 'L| ?> ;Y|(%> \B" ^h+b^ "o!b)(}J[]x'
`QMB$&Yt (: .L| :f jY:lW( !o~ "kj*^ "#[b>U)U"]r.
`ZbOpCv\ (:.lJ{ ^.c"ft `Mf `p] "kch^ `ktkILtr +x,
`bUi>>w! :'^/X< ~'n],: ^Wf ^Z} "hxL, .Jcb!vc~ ,X_
`k| ;M` ijc?. |`1/^ "Wt ^C) ^p(Y, uUbl1u; .v(
^ml \$^ (?vz"'X^,r1 "Wt 'ct .C~L^ uUd,,)i |r.
^m! zW^ r>vc^`z. 1j "Wt 'Yj". u<U' uYq^ 1~ [c^
`b/ Y0. jic> '1 ^(. "Wf `pj[, t1x vXO`'x+ ?cl
`kv t\ 1lz<i<[i>^}_ ^Wt,' `#x[, \vt fCU''z?, ~z<
`pn :: ,"zzmzfOp)]0 ^&/1: 'Bv". fpj -pr .c1) ,z-
`qx `zb$pc%$u>Q>"M1}" l%\ r#j .?b/.lc}1 .x1
`qx 'cM$bU%$v`~U:h>. \o; rWj ,rqt^/c>, 1x.
`qx .r0mUXOp| J~k1i><Ld ". fBj `:tkj^tx> -z, ".
`qx .{i>~ji>: +(okbbbMp^ ]" t$r <"!$u.i(1^ _z< ?,
`qx !1 !f ./o$$$$%0" 1, ]b{ 1^.b\ `{u: >z] x;
`qx fu fc }k$$$$bn. +^ `i`'r` <: ^|w, ,c}`m,
`pn .^., "Yr zj >Jkbbbu[ I' ^`""j' ^xw^ .j|;m^
`du ^+^1 [Y< x~ `[~<<<I" ' {//l? "Qv ?r+r.
`Qt ,-lf |t^' {^ :` {tcI! ^v}` l/~-
.t? ;i]) 1I'; ". `+ ,lr^;. .I;! ^+^^
.{< II1{ { .l .}' t.:' .~ 'I
点赞0
评论