将图片转为有趣的字符图片,更新 0.2.2 支持自定义字符,已上传 PyPi
本帖最后由 hrpzcf 于 2021-9-23 19:55 编辑虽然已经有很多大佬发过了,但是我还是要发{:5_109:}
将图片转字符组成的图片,非转文本文件。
已更新至 0.2.2 版本:
makeImage函数新增关键字参数chars,自定义用于图像的字符;
新增两个函数grayscaleOf和sortByGrayscale,用于查询字符的等效灰度值,和按等效灰度值排序给出的字符串。
效果:
用法:
1. 先通过pip安装:py -m pip install imgtoch -i https://mirrors.cloud.tencent.com/pypi/simple
2.参数说明:
from imgtoch import makeImage
makeImage(
"源图片路径",
"生成的图片保存路径",# 此路径应包括文件名
chars = None, # 包含用于图像的字符的字符串,字符数应大于 1,无需手动按等效灰度值排序
scale = 1, # 采集率,0 < scale <= 1,可省略
quality = 80, # 图片保存质量,大于 0 小于等于 100
fontPath = "字体路径", # 可省略
fontSize = 14, # 字体大小,仅指定字体路径时生效,可省略
horzSep = 2, # 字符横向间隔,可省略
vertSep = 2, # 字符纵向间隔,可省略
keepRatio=True, # 是否保持原比例。因字体高宽不一定相等,生成的图片高宽会变形,此项为 True 则抵消变形,可省略
keepSize=False, # 一个字符对应一个像素点,因字符有大小,所以生成的图片尺寸会变化,此项为 True 会将生成的图片缩放至原图尺寸,可省略
)
3. 实例 1:
from imgtoch import makeImage
# 大图片尽量将 scale 设置的小些,否则生成的图片会比较大
# 字体大小 fontSize 也是影响最终生成的图片大小的因素之一
makeImage("1.jpg", "new.jpg", scale=0.2)# 图片 1.jpg 已在当前目录中
4. 实例 2:
from imgtoch import *
# 获取字符'#'的等效灰度值
print(grayscaleOf("#")) # ('#', 170)
# 将给定字符串按等效灰度值排序
print(sortByGrayscale("H oa.:sjv@%^a'"))
# 结果:['H', '@', 'a', '%', 'a', 's', 'j', 'o', 'v', '^', ':', "'", '.', ' ']
# 其中'a'和'%'的等效灰度值应该是相等的所以出现了'%'被夹在两个'a'中间的问题
# 更具体的参数可以看 IDE 提示或者使用 help 函数
源代码:
**** Hidden Message *****
完整项目结构见:
https://gitee.com/hrpzcf/imgtoch
https://github.com/hrpzcf/imgtoch
小技巧 - 想要生成的图片中的字符能清晰可见:
参数scale不宜设置的过小,对于一般相片大小(如2976*3968)来说,0.2就还不错,1080*1920的照片则用0.3,效果也还可以;
其次要指定字体路径fontPath(不然字体大小不生效),将字体大小fontSize设置的大一点,比如36;
最后参数keepSize应设置为False,这样,最终生成的图片会非常大,但把图片放大后字符也一样清晰。
666 okk
感谢楼主无私奉献! 66666 求代码
1111111 期末作业靠你了
来看看~ 进收藏夹吃灰吧 https://gitee.com/hrpzcf/imgtoch
中国的网站不行,要登录才能看,违背互联网开放思维,还宣称传播开源,呸 棒棒哒 学习了 6666666 大佬
收藏收藏 1
学习 1 {:10_254:}6666,好厉害