当前位置: 首页 > news >正文

公司网站建设收费微商商城系统

公司网站建设收费,微商商城系统,江门网站建设方案,福建建设工程注册中心网站字符画是一种由字母、标点或其他字符组成的图画#xff0c;它产生于互联网时代#xff0c;在聊天软件中使用较多#xff0c;本文我们看一下如何将自己喜欢的图片转成字符画。静态图片首先#xff0c;我们来演示将静态图片转为字符画#xff0c;功能实现主要用到的 Python …字符画是一种由字母、标点或其他字符组成的图画它产生于互联网时代在聊天软件中使用较多本文我们看一下如何将自己喜欢的图片转成字符画。静态图片首先我们来演示将静态图片转为字符画功能实现主要用到的 Python 库为 OpenCV安装使用 pip install opencv-python 命令即可。功能实现的基本思路为利用聚类将像素信息聚为 3 或 5 类颜色最深的一类用数字密集度表示阴影的一类用横杠(-)表示明亮部分用空白表示。主要代码实现如下def img2strimg(frame, K5): if type(frame) ! np.ndarray: frame np.array(frame) height, width, *_ frame.shape frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) frame_array np.float32(frame_gray.reshape(-1)) criteria (cv2.TERM_CRITERIA_EPS cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0) flags cv2.KMEANS_RANDOM_CENTERS # 得到 labels(类别)、centroids(矩心) compactness, labels, centroids cv2.kmeans(frame_array, K, None, criteria, 10, flags) centroids np.uint8(centroids) # labels 的数个矩心以随机顺序排列所以需要简单处理矩心 centroids centroids.flatten() centroids_sorted sorted(centroids) # 获得不同 centroids 的明暗程度0 为最暗 centroids_index np.array([centroids_sorted.index(value) for value in centroids]) bright [abs((3 * i - 2 * K) / (3 * K)) for i in range(1, 1 K)] bright_bound bright.index(np.min(bright)) shadow [abs((3 * i - K) / (3 * K)) for i in range(1, 1 K)] shadow_bound shadow.index(np.min(shadow)) labels labels.flatten() # 将 labels 转变为实际的明暗程度列表 labels centroids_index[labels] # 解析列表 labels_picked [labels[rows * width:(rows 1) * width:2] for rows in range(0, height, 2)] canvas np.zeros((3 * height, 3 * width, 3), np.uint8) # 创建长宽为原图三倍的白色画布 canvas.fill(255) y 8 for rows in labels_picked: x 0 for cols in rows: if cols shadow_bound: cv2.putText(canvas, str(random.randint(2, 9)), (x, y), cv2.FONT_HERSHEY_PLAIN, 0.45, 1) elif cols bright_bound: cv2.putText(canvas, -, (x, y), cv2.FONT_HERSHEY_PLAIN, 0.4, 0, 1) x 6 y 6 return canvas原图如下效果图如下GIF 动图接下来我们演示将 GIF 转为字符画功能实现主要用到的 Python 库为 imageio、Pillow安装使用 pip install imageio/Pillow 命令即可。功能实现的基本思路如下将 gif 图片的每一帧拆分为静态图片将所有静态图片变为字符画将所有字符画重新合成 gif主要代码实现如下# 拆分 gif 将每一帧处理成字符画def gif2pic(file, ascii_chars, isgray, font, scale): file: gif 文件 ascii_chars: 灰度值对应的字符串 isgray: 是否黑白 font: ImageFont 对象 scale: 缩放比例 im Image.open(file) path os.getcwd() if(not os.path.exists(path/tmp)): os.mkdir(path/tmp) os.chdir(path/tmp) # 清空 tmp 目录下内容 for f in os.listdir(path/tmp): os.remove(f) try: while 1: current im.tell() name file.split(.)[0]_tmp_str(current).png # 保存每一帧图片 im.save(name) # 将每一帧处理为字符画 img2ascii(name, ascii_chars, isgray, font, scale) # 继续处理下一帧 im.seek(current1) except: os.chdir(path)# 将不同的灰度值映射为 ASCII 字符def get_char(ascii_chars, r, g, b): length len(ascii_chars) gray int(0.2126 * r 0.7152 * g 0.0722 * b) return ascii_chars[int(gray/(256/length))]#2020最新python学习资源分享1156465813# 将图片处理成字符画def img2ascii(img, ascii_chars, isgray, font, scale): scale scale # 将图片转换为 RGB 模式 im Image.open(img).convert(RGB) # 设定处理后的字符画大小 raw_width int(im.width * scale) raw_height int(im.height * scale) # 获取设定的字体的尺寸 font_x, font_y font.getsize( ) # 确定单元的大小 block_x int(font_x * scale) block_y int(font_y * scale) # 确定长宽各有几个单元 w int(raw_width/block_x) h int(raw_height/block_y) # 将每个单元缩小为一个像素 im im.resize((w, h), Image.NEAREST) # txts 和 colors 分别存储对应块的 ASCII 字符和 RGB 值 txts [] colors [] for i in range(h): line lineColor [] for j in range(w): pixel im.getpixel((j, i)) lineColor.append((pixel[0], pixel[1], pixel[2])) line get_char(ascii_chars, pixel[0], pixel[1], pixel[2]) txts.append(line) colors.append(lineColor) # 创建新画布 img_txt Image.new(RGB, (raw_width, raw_height), (255, 255, 255)) # 创建 ImageDraw 对象以写入 ASCII draw ImageDraw.Draw(img_txt) for j in range(len(txts)): for i in range(len(txts[0])): if isgray: draw.text((i * block_x, j * block_y), txts[j][i], (119,136,153)) else: draw.text((i * block_x, j * block_y), txts[j][i], colors[j][i]) img_txt.save(img)# 读取 tmp 目录下文件合成 gifdef pic2gif(dir_name, out_name, duration): path os.getcwd() os.chdir(dir_name) dirs os.listdir() images [] num 0 for d in dirs: images.append(imageio.imread(d)) num 1 os.chdir(path) imageio.mimsave(out_name _ascii.gif,images,duration duration)原图如下黑白效果图如下彩色效果图如下总结本文我们利用 Python 演示了将静态图和 GIF 转为字符画的方法大家如果有兴趣的话可以将自己喜欢的图转一下如果对转换效果不满意还可以修改代码改成自己满意的效果。
http://www.pierceye.com/news/204843/

相关文章:

  • 资阳住房和城乡建设厅网站重庆建设网站建站
  • 网站制作厂家电话多少女生学网络工程难吗
  • 网站建设要经历哪些步骤?网站建设岗位周计划
  • 贵阳网站制作工具福步外贸论坛网首页
  • 网站大全app下载任务发布平台
  • 专业商城网站建设哪家便宜河南做外贸网站的公司
  • seo博客网站东莞网络推广运营企业
  • 定制网站建设公司哪家好嘉兴网站建设多少时间
  • 快三竞猜网站建设wordpress 整站打包
  • 珠海好的网站制作平台微信音乐音频怎么关闭
  • asp.net 网站计数器响应式设计
  • 2017做那些网站致富小程序商城哪个平台好
  • 织梦制作网站如何上线做网站 当站长
  • 如何知道一个网站是用什么做的树莓派搭建wordpress
  • 怎么制作网站登录电子商务网上购物网站建设规划
  • 大连外贸网站制作做文案公众号策划兼职网站
  • 400网站建设推广通王网站内容管理系统
  • 上海专业网站制作开发wordpress 一级目录下
  • 要查询一个网站在什么公司做的推广怎么查济南集团网站建设报价
  • 手机静态网站建设课程设计报告形象型网站
  • 网站建设接单渠道百度网站内容
  • 企业网站pv是什么手机网站开发价格
  • 北京网站优化团队oppo开放平台
  • 购物商城外贸网站福州营销型网站建设公司
  • 白酒pc网站建设方案网站不符合个人备案性质
  • 做视频网站程序多少钱免费人体做爰网站
  • 做海外网站 服务器放哪网页设计师通常是设计两套ui吗
  • 海拉尔网站建设做html网站模板下载
  • 为什么网站找不到了东莞智通人才市场招聘官网
  • 如何注册网站名称中国煤炭建设协网站