按照竖版,在图片上打字

本文介绍了一个项目中处理古籍封面的过程,需要在竖版封面底图上根据书名打字。每列文字满后能自动换到下一列。文中提供了一段实现这一功能的具体代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


项目中需要对一批古籍做处理,在已经做好的封面底图上,打上不同的书名

 

空白封面

 

处理好的封面

 

因为是竖版,还要考虑文字的位置,并且每列文字满了以后,还要自动换到下一列。

具体代码如下:

 

//待写入文字
            string text = "本草纲目";

            //待打字的原图
            string basePic = @"d:\book.jpg";
            //处理好的图
            string buildPath = @"d:\book_ok.jpg";


            //定义字体和颜色
            Color fontColor = System.Drawing.Color.White;
            Font font = new Font("微软雅黑", 16);
            var imageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;


            int levelCount = 24;//每列的宽度
            int x = 5;//当前文字X轴坐标
            int y = 5;//当前文字Y轴坐标


            Bitmap bitMap = new Bitmap(basePic);
            Graphics graphics = Graphics.FromImage(bitMap);

            //开始在图片上打字,此处要为每个字定位,写满10个字,要换下一列,给X加levelCount
            graphics.DrawString(text[0].ToString(), font, new SolidBrush(fontColor), new PointF(x, y));
            for (int i = 1; i < text.Length; i++)
            {
                if (i % 10 == 0)
                {
                    x += levelCount; y = 5;
                }
                else
                {
                    y += levelCount;
                }
                string c = text[i].ToString();
                graphics.DrawString(c, font, new SolidBrush(fontColor), new PointF(x, y));
            }


            bitMap.Save(buildPath, imageFormat);

            //清理资源            
            graphics.Dispose();
            bitMap.Dispose();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值