开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 138|回复: 12
收起左侧

[完成] 文本转图片 解决行数越多 字体越小的问题

 关闭 [复制链接]
结帖率:93% (108/116)
发表于 7 小时前 | 显示全部楼层 |阅读模式   山东省枣庄市
30精币
.版本 2
.支持库 spec

.子程序 文本转图片, 字节集
.参数 文本, 文本型
.参数 文本颜色, 整数型, , #黑色
.参数 背景颜色, 整数型, , 15780221
.局部变量 GP字体, GP字体
.局部变量 GP字体族, GP字体族
.局部变量 宽度_局, 整数型
.局部变量 高度_局, 整数型
.局部变量 GP纯色画刷, GP纯色画刷
.局部变量 临时位图数据, 字节集
.局部变量 GP位图, GP位图
.局部变量 内存图, GP内存图形

Gdiplus初始化 ()
GP字体族.创建自名称 (“微软雅黑”)
GP字体.创建 (GP字体族, 48, #字体风格_加粗, #单位_像素)
宽度_局 = 内部_取字符串宽度 (GP字体, 文本) + 10
高度_局 = 内部_取字符串高度 (GP字体, 文本) + 10
内存图.创建 (宽度_局, 高度_局)
GP纯色画刷.创建 (RGB到ARGB (背景颜色))
内存图.填充矩形 (GP纯色画刷, 0, 0, 宽度_局, 高度_局)
GP纯色画刷.置颜色 (RGB到ARGB (文本颜色))
内存图.画文本 (文本, GP字体, GP纯色画刷, , )
GP位图.创建自字节集 (内存图.取位图 (), 真)
临时位图数据 = GP位图.保存到字节集 (#图像格式_JPEG)
GP位图.销毁 ()
GP纯色画刷.销毁 ()
GP字体族.销毁 ()
GP字体.销毁 ()
内存图.销毁 ()
Gdiplus关闭 ()
返回 (临时位图数据)

.子程序 内部_取字符串宽度, 整数型
.参数 字体, GP字体
.参数 字符串, 文本型
.局部变量 字符串s, 文本型, , "0"
.局部变量 n, 整数型
.局部变量 i, 整数型

字符串s = 分割文本 (字符串, #换行符, )
.计次循环首 (取数组成员数 (字符串s), i)
    .如果真 (n < 取文本长度 (字符串s ))
        n = 取文本长度 (字符串s )
        调试输出 (n)
    .如果真结束

.计次循环尾 ()

返回 (n ÷ 2 × 字体.取尺寸 () + 字体.取尺寸 () ÷ 2)

.子程序 内部_取字符串高度, 整数型
.参数 字体, GP字体
.参数 字符串, 文本型
.局部变量 n, 整数型
.局部变量 字符串s, 文本型, , "0"

字符串s = 分割文本 (字符串, #换行符, )
返回 (字体.取高度 () × 取数组成员数 (字符串s))
--------------------------------------------------------------------
只有字母和数字
-----------------------
模块
GDIPlus类2.4.1改过.rar (84.41 KB, 下载次数: 1)

最佳答案

结帖率:99% (81/82)

签到天数: 1 天

发表于 7 小时前 | 显示全部楼层   河北省廊坊市
yq1431 发表于 2026-5-1 14:43
破案了 就是QQ进行缩放了  代码没问题

结贴
回复

使用道具 举报

结帖率:99% (81/82)

签到天数: 1 天

发表于 5 小时前 | 显示全部楼层   河北省廊坊市
.子程序 内部_取字符串宽度, 整数型
.参数 字体, GP字体
.参数 字符串, 文本型
.局部变量 字符串s, 文本型, , "0"
.局部变量 n, 整数型
.局部变量 i, 整数型

字符串s = 分割文本 (字符串, #换行符, )
.计次循环首 (取数组成员数 (字符串s), i)
    .如果真 (n < 取文本长度 (字符串s ))
        n = 取文本长度 (字符串s )
        调试输出 (n)
    .如果真结束

.计次循环尾 ()

返回 (n ÷ 2 × 字体.取尺寸 () + 字体.取尺寸 () ÷ 2)


没明白你说的啥意思 但是代码这里有点问题

补充内容 (2026-5-1 13:28):
取文本长度 (字符串s ) 和  n = 取文本长度 (字符串s ) 没有下标   
回复

使用道具 举报

结帖率:93% (108/116)

签到天数: 1 天

 楼主| 发表于 5 小时前 | 显示全部楼层   山东省枣庄市
cunanhai 发表于 2026-5-1 13:27
.子程序 内部_取字符串宽度, 整数型
.参数 字体, GP字体
.参数 字符串, 文本型

文本行数越多  生成的图片  字体就越小  好奇怪
回复

使用道具 举报

结帖率:99% (81/82)

签到天数: 1 天

发表于 5 小时前 | 显示全部楼层   河北省廊坊市
例子.e (327.08 KB, 下载次数: 2)
回复

使用道具 举报

结帖率:93% (108/116)

签到天数: 1 天

 楼主| 发表于 5 小时前 | 显示全部楼层   山东省枣庄市
cunanhai 发表于 2026-5-1 13:48
没发现问题 你看看

大于13行 就变小了
回复

使用道具 举报

结帖率:99% (81/82)

签到天数: 1 天

发表于 5 小时前 | 显示全部楼层   河北省廊坊市
例子.e (281.17 KB, 下载次数: 0)
回复

使用道具 举报

结帖率:93% (108/116)

签到天数: 1 天

 楼主| 发表于 5 小时前 | 显示全部楼层   山东省枣庄市
cunanhai 发表于 2026-5-1 14:04
.版本 2

.子程序 _按钮1_被单击

我要发送到QQ
回复

使用道具 举报

结帖率:99% (81/82)

签到天数: 1 天

发表于 5 小时前 | 显示全部楼层   河北省廊坊市
会不会是你发到QQ的时候图片缩放了?
你这段代码没问题,有问题肯定是后续代码的问题
回复

使用道具 举报

结帖率:93% (108/116)

签到天数: 1 天

 楼主| 发表于 5 小时前 | 显示全部楼层   山东省枣庄市
cunanhai 发表于 2026-5-1 14:12
会不会是你发到QQ的时候图片缩放了?
你这段代码没问题,有问题肯定是后续代码的问题
...

就图片复制  粘贴  发送
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表