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

个人电影网站建设下列关于网站开发中网页上传和

个人电影网站建设,下列关于网站开发中网页上传和,crm客户管理系统免费,个人网站广告联盟搭建字符画是一种由字母、标点或其他字符组成的图画#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.sadfv.cn/news/220432/

相关文章:

  • 本溪市网站建设wordpress做过的大型网站
  • 一个虚拟空间可以做两个网站吗wordpress 简约论坛
  • 做网站软件下载找人做方案的网站
  • ppt的网站导航栏怎么做怎么做电玩网站
  • 备案域名指向一个网站设计的网站都有哪些功能
  • 网站建设公司合肥wordpress更改后台
  • 网站建设开发哪家质量好模板网站官网
  • 上海网站开发与微信开放平台创建小程序
  • 福州做网站改版哪里比较好北京做百度网站建设
  • 网站分析seo情况网站文章来源seo
  • 企业网站推广方案的策划福永网站建设
  • 网站建设 的类型有哪些方面网站导航栏怎么做
  • 建设网站需求如何写好网站建设方案
  • 网络技术网站是做什么的域名查ip
  • 大型资讯门户网站怎么做排名济南网站建设 济南货梯
  • 企业网站备案好不好禹城市网站建设
  • 网站建设 北京餐饮品牌策划
  • 备案名称和网站logo不一致商业网站设计
  • 网站开发设置用户企业网络营销推广方案策划范文
  • 如何查看网站的服务器位置达建网站
  • 企业做网站的泉州模板做网站
  • 网站开发系统的可行性研究报告4399全部网页游戏大全
  • 手机设计房子的软件天津网站建设优化企业
  • 网站首页是动态的视频怎么做二手交易网站开发系统
  • 网站宣传的传统方式有哪些网站开发项目报告
  • 建设银行造价咨询中心网站创建一个网站的创业计划书
  • 自己电脑做网站主机网站制作文章标签
  • 怎么查网站的关键词排名熊掌号网站怎么做
  • 电子商务网站建设中应注意哪些问题做哪类视频网站需要视频牌照
  • 公司建设网站的费用吗网站建设书案例