python网站开发换行_Python在图片中插入大量文字并且自动换行

news/2024/5/9 21:53:58/文章来源:https://blog.csdn.net/weixin_39699670/article/details/110022208

问题

如何在图片中插入大量文字并且自动换行

效果

原始图

201907142346482331.png

效果图

201907142346483879.png

注明

若需要写入中文请使用中文字体

实现方式

from PIL import Image, ImageDraw, ImageFont

class ImgText:

font = ImageFont.truetype("micross.ttf", 24)

def __init__(self, text):

# 预设宽度 可以修改成你需要的图片宽度

self.width = 100

# 文本

self.text = text

# 段落 , 行数, 行高

self.duanluo, self.note_height, self.line_height = self.split_text()

def get_duanluo(self, text):

txt = Image.new('RGBA', (100, 100), (255, 255, 255, 0))

draw = ImageDraw.Draw(txt)

# 所有文字的段落

duanluo = ""

# 宽度总和

sum_width = 0

# 几行

line_count = 1

# 行高

line_height = 0

for char in text:

width, height = draw.textsize(char, ImgText.font)

sum_width += width

if sum_width > self.width: # 超过预设宽度就修改段落 以及当前行数

line_count += 1

sum_width = 0

duanluo += '\n'

duanluo += char

line_height = max(height, line_height)

if not duanluo.endswith('\n'):

duanluo += '\n'

return duanluo, line_height, line_count

def split_text(self):

# 按规定宽度分组

max_line_height, total_lines = 0, 0

allText = []

for text in self.text.split('\n'):

duanluo, line_height, line_count = self.get_duanluo(text)

max_line_height = max(line_height, max_line_height)

total_lines += line_count

allText.append((duanluo, line_count))

line_height = max_line_height

total_height = total_lines * line_height

return allText, total_height, line_height

def draw_text(self):

"""

绘图以及文字

:return:

"""

note_img = Image.open("001.png").convert("RGBA")

draw = ImageDraw.Draw(note_img)

# 左上角开始

x, y = 0, 0

for duanluo, line_count in self.duanluo:

draw.text((x, y), duanluo, fill=(255, 0, 0), font=ImgText.font)

y += self.line_height * line_count

note_img.save("result.png")

if __name__ == '__main__':

n = ImgText(

"1234567890" * 5)

n.draw_text()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对找一找教程网的支持。如果你想了解更多相关内容请查看下面相关链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_754221.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress include 不生效_wordpress零基础建站(4)-在腾讯云搭建LNMP+Redis+wordpress

今天这篇教程我们开始在腾讯云服务器上搭建wordpress环境并安装wordpress,开始涉及到搭建代码了,对于代码不熟悉的小伙伴也不要着急,我会在教程中对于每条命令执行了什么操作作出说明,只要按照步骤操作即可完成wordpress的搭建。本…

云主机管理神器网站管理助手

云主机越来越普及的时代,很多用户苦于没有合适的windows版的管理工具,IIS太弱而且没法支持到目录安全、PHP环境、mysql数据库等。这里推荐西数管理助手给各位,关键是免费可用! 西部数码网站管理助手是一款面向拥有独立服务…

11个与众不同、令人叹为观止的单页网站

单页网站能够给网站浏览者提供一个简洁、叹为观止的体验。在单一的页面内展示完你需要的内容可能是一个富有挑战性的过程,但许多网页设计师喜欢用这种方法 把网站的内容放在一个令人惊讶的页面设计中。从单页所用的图片和文字,以叹为观止的视觉差滚动效果…

java和seo哪个好,seo和java哪个更好

一个seo行业站点,科学的内容制作应该与seo相关,且内容本身是有人搜索的。seo和java哪个更好是有人搜索的语句,且与seo是强相关的,对于seo教程自学网来讲,这样的内容再适合不过了。 任何一门技术,如果精通&a…

Sogou搜狗搜索引擎登录网站 - Blog透视镜

Sogou搜狗是中国搜狐旗下的搜索引擎,其登录方式也很简单,只要输入网址,验证码即可,不需要注册账号,再进行登录,其他非 * 必填的字段,可留下空白不填,验证码只有4码,也很清…

vue+elementui完美实现博客、网站、个人网站,高仿“张凯博客”实现排版

1.本项目Demo实现灵感来源 张凯博客,采用vueelementui实现编码,最终效果图: 完整源码下载 2.首先创建vue项目,采用开发工具Hbuilder。vue创建项目教程可参考:https://www.cnblogs.com/pyjblog/articles/14349370.html …

vue+element简单实现商城网站首页,模仿小米电商商城(一)

1.本案例灵感来源于小米官网 https://www.mi.com/ 项目演示地址:可私聊作者获取(演示地址不定时变化) 源码 官方截图 产品效果图: 二级菜单、产品详情 购物车 2.首先创建vue项目,采用开发工具Hbuilder。vue创建项目教程…

vue+elementui实现非常好看的博客、网站首页,网站模板

1.效果图,设计上美观大方 源码 2.首先创建vue项目,采用开发工具Hbuilder。vue创建项目教程可参考:(一)Vue——如何创建一个Vue项目(完整步骤) - 㭌(mou)七 - 博客园 3.创建项目后安装elementui…

vue+element简单实现商城网站首页,模仿电商商城

1.安装启动vue项目可参考 vueelement简单实现商城网站首页,模仿小米电商商城https://blog.csdn.net/lucky_fang/article/details/121544242 本项目源码下载https://download.csdn.net/download/lucky_fang/85161752 2.产品效果图 3.项目结构图 4.src/page/top/ind…

衣服、商品、商城网站模板首页,仿U袋网,vue+elementui简洁实现

1.本案例灵感来源于网络 项目演示地址:可私聊作者获取(演示地址不定时变化) 仿照来源:网络案例 以下源码是第一版源码,最新源码请私聊作者获取,或通过博客后面微信名片添加作者 源码https://download.c…

生鲜水果商品商城静态网站,vue+elementui简单实现

1.安装启动vue项目 (一)Vue——如何创建一个Vue项目(完整步骤) - 㭌(mou)七 - 博客园 2.elementui官网 Element - The worlds most popular Vue UI framework 3.如果你下载的是本项目源码,则步骤一中可以不用执行&a…

html+css响应式旅游主题网站模板,旅游网站,企业文化新闻类网站,简单web假期课程作业

1.灵感来源预览 社区、企业、公益共享交流平台_优享人app-优享时代官网 2.demo效果图,同时兼容手机端访问,所有菜单都已完善功能,即拿即用,很简单 源码下载https://download.csdn.net/download/lucky_fang/85320989 手机端访问…

web静态网站,css+html旅游景点网站,web假期作业

1.项目共分为8个网页: 首页、历史文化、景区概况、推荐游玩、美食一览、文化活动、地理位置、联系我们 纯csshtml实现的静态网页,很适合新手学习和使用, 源码下载 如下图,首页: 含背景音乐循环播放,自…

vue+elementui+springboot前后端分离实现学校帖子网站,模拟“淘柳职”学校大作业

一.技术实现 项目演示地址:可私聊作者获取(演示地址不定时变化) 前端 vueelementui; 后端: SpringBootOAuth2Spring SecurityRedismybatis-plusmysqlswagger 二.前言 淘柳职网站:淘柳职 本项目完全是…

程序猿最应去的网站有哪些?

2019独角兽企业重金招聘Python工程师标准>>> 要想成为优秀的程序猿,不仅要有一定天分,常与大神交流,自己多加练习才是正确的方法。下面是一些Quora用户推荐的国外网站,与广大程序猿或者希望学习编程的朋友们分享&#…

通过建立自己的AuthorizeAttribute实现网站的权限管理

2019独角兽企业重金招聘Python工程师标准>>> 当我们用.net MVC构建网站平台的时候,势必会对网站平台的安全性和用户的使用权限进行一个统一的构建,首先在.net MVC 架构中,系统已经将权限管理分为三个层面来进行管理,第…

delphi RAD Studio新版本及路线图 及官方网站 官方 版本发布时间

delphi RAD Studio Berlin 10.1 主要是FireMonkey 移动开发的改动,VCL确实没有多大变化。 http://docwiki.embarcadero.com/RADStudio/Berlin/en/Main_Page http://docwiki.embarcadero.com/RADStudio/Berlin/en/Whats_New EMB 官网地址资源 Bug fix list for RAD …

网站调查方法步骤.

1.查看对方网站pr值2.查看对方在搜索引擎快照的新鲜度3.到http://whois.domaintolls.com查看对方域名注册信息4.到http://www.archive.org查看对方的收录历史5.查看对方在搜索引擎的收录数6.查看对方的外部链接数7.查看对方是否被雅虎目录,开放目录dmoz.org,好123收…

大型网站架构演变

初级篇:(单机模式)假设配置:(Dual core 2.0GHz,4GB ram,SSD)基础框架:apache(PHP) Mysql / IIS MSSQL(最基础框架,处理一般访问请求)进阶1:替换…

在线流程图与图表制作网站

现在很多功能网站,最常见的就是图片处理类,不如切图,图片转换,添加效果等。本文收集了国外最常用的流程图与图表制作网站,这些网站功能强大,如果你正好需要制作图表或流程图,而对于软件又不熟悉…