在图象上书写文字或绘图

      有时,单纯用图片并不能清楚表达我们的意思,我们需要添加一些文字或者箭头来做补充.这在GDI+中可以用很简单的方法来实现!在GDI+中,你能用Graphics对象方法处理除索引颜色外的任意图象格式.这一处理过程相当简单,就像我们直接在屏幕上绘图似的.如果要处理一索引颜色形式存储的图片,比如以GIF格式存储的文件,这要稍微麻烦些,得做个小小的处理,就是把以索引颜色格式保存的图象转换成非颜色格式处理的图象形式,然后你可以任意的修改,最后保存图象即可.
     下面的代码给出了在图象上绘制文字和绘图的关键代码,其实现的是将当前日期绘制到图象上去(vb.net实现):
      Dim imageName As String = "c:/foo.jpg" //得按照你的配置指定一个图象路径
      Dim i As Image = Image.FromFile(imageName)
      Dim g As Graphics = Graphics.FromImage(i)
      g.FillRectangle(Brushes.White, 5, 5, 100, 30)
      g.DrawRectangle(Pens.DarkBlue, 5, 5, 100, 30)
      Dim sf As StringFormat = CType(StringFormat.GenericTypographic.Clone(), StringFormat)
     sf.Alignment = StringAlignment.Center
     sf.LineAlignment = StringAlignment.Center
     g.DrawString(DateTime.Now.ToShortDateString(), New Font("Arial", 14, GraphicsUnit.Point),    Brushes.Black, New RectangleF(7, 7, 94, 25), sf)
      g.Dispose()
      i.Save("C:/testimage.jpg", ImageFormat.Jpeg)
      i.Dispose()
      上述代码在图象的左上角打上了一个日期时间戳!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在 Python 中实现像上的文字扭曲变形,可以使用 Python 的 Pillow 库和 OpenCV 库。下面是一个简单的示例代码,可以帮助您实现这个功能: ```python from PIL import Image, ImageDraw, ImageFont, ImageFilter import cv2 import numpy as np # 创建片对象 img = Image.new('RGB', (500, 500), (255, 255, 255)) # 创建绘图对象 draw = ImageDraw.Draw(img) # 设置字体样式 font = ImageFont.truetype('arial.ttf', 50) # 绘制文字 draw.text((100, 200), 'Hello World', font=font, fill=(0, 0, 0)) # 转换为 OpenCV 格式 img_cv2 = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) # 像扭曲 rows, cols, _ = img_cv2.shape pts1 = np.float32([[100, 200], [200, 200], [100, 300]]) pts2 = np.float32([[120, 220], [220, 180], [120, 320]]) M = cv2.getAffineTransform(pts1, pts2) img_warp = cv2.warpAffine(img_cv2, M, (cols, rows)) # 转换为 Pillow 格式 img_warp = Image.fromarray(cv2.cvtColor(img_warp, cv2.COLOR_BGR2RGB)) # 添加模糊效果 img_warp = img_warp.filter(ImageFilter.GaussianBlur(radius=2)) # 显示片 img_warp.show() ``` 在上面的代码中,我们首先使用 Pillow 库创建了一个白色背景的片,并在上面绘制了黑色的文字。然后,我们将片转换为 OpenCV 格式,并使用 getAffineTransform() 方法计算出扭曲变形的矩阵 M。最后,我们使用 warpAffine() 方法对像进行扭曲变形,并将结果转换为 Pillow 格式。为了使效果更加真实,我们还添加了一个高斯模糊的滤镜效果。 您可以根据需要修改代码中的参数,以达到不同的扭曲变形效果。同时,您也可以使用更加高级的像处理库,比如 Scikit-image 等,来实现更加复杂的扭曲效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值