c# 生成文字图片和合并图片的示例

生成文字图片:

/// <summary>
    /// 生成文字图片
    /// </summary>
    /// <param name="text"></param>
    /// <param name="isBold"></param>
    /// <param name="fontSize"></param>
    public Image CreateImage(string text, bool isBold, int fontSize)
    {
      int wid = 400;
      int high = 200;
      Font font;
      if (isBold)
      {
        font = new Font("Arial", fontSize, FontStyle.Bold);

      }
      else
      {
        font = new Font("Arial", fontSize, FontStyle.Regular);

      }
      //绘笔颜色
      SolidBrush brush = new SolidBrush(Color.Black);
      StringFormat format = new StringFormat(StringFormatFlags.NoClip);
      Bitmap image = new Bitmap(wid, high);
      Graphics g = Graphics.FromImage(image);
      SizeF sizef = g.MeasureString(text, font, PointF.Empty, format);//得到文本的宽高
      int width = (int)(sizef.Width + 1);
      int height = (int)(sizef.Height + 1);
      image.Dispose();
      image = new Bitmap(width, height);
      g = Graphics.FromImage(image);
      g.Clear(Color.White);//透明

      RectangleF rect = new RectangleF(0, 0, width, height);
      //绘制图片
      g.DrawString(text, font, brush, rect);
      //释放对象
      g.Dispose();
      return image;
    }

合并图片:

/// <summary>
    /// 合并图片
    /// </summary>
    /// <param name="imgBack"></param>
    /// <param name="img"></param>
    /// <returns></returns>
    public static Bitmap CombinImage(Image imgBack, Image img, int xDeviation = 0, int yDeviation = 0)
    {

      Bitmap bmp = new Bitmap(imgBack.Width, imgBack.Height + img.Height);

      Graphics g = Graphics.FromImage(bmp);
      g.Clear(Color.White);
      g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height); //g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);

      //g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框

      //g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);

      g.DrawImage(img, imgBack.Width / 2 - img.Width / 2 + xDeviation, imgBack.Height + yDeviation, img.Width, img.Height);
      GC.Collect();
      return bmp;
    }
/// <summary>
    /// Resize图片
    /// </summary>
    /// <param name="bmp">原始Bitmap</param>
    /// <param name="newW">新的宽度</param>
    /// <param name="newH">新的高度</param>
    /// <param name="mode">保留着,暂时未用</param>
    /// <returns>处理以后的图片</returns>
    public static Image ResizeImage(Image bmp, int newW, int newH, int mode)
    {
      try
      {
        Image b = new Bitmap(newW, newH);
        Graphics g = Graphics.FromImage(b);

        // 插值算法的质量
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height),
              GraphicsUnit.Pixel);
        g.Dispose();
        return b;
      }
      catch
      {
        return null;
      }
    }

MemoryStream保存到图片

     Bitmap bmp = CombinImage(ms, img1);
     MemoryStream ms = new MemoryStream();
     bmp.Save(ms, ImageFormat.Png);  

以上就是c# 生成文字图片和合并图片的示例的详细内容,更多关于c# 生成文字图片和合并图片的资料请关注我们其它相关文章!

(0)

相关推荐

  • c# 实现图片查看器

    一.引言 因为最近在MSDN中的论坛和CSDN论坛都看到有些朋友问到如何用C#实现一个像Windows自带的图片查看器的功能等类似的问题(当然还有如何如何旋转图片的,如何通过按钮来变换图片的功能等),所以为了帮助大家更好地解决类似的这样的问题,所以这篇文章将简单介绍下如何使用C#来实现一个图片查看器的功能的,该工具保存的功能有: 可以通过"上一张" "下一张"这样的按钮来轮换浏览图片 实现对图片的旋转 实现对旋转后图片的保存功能.本程序不仅提供旋转90/180/27

  • C# 图片与Base64码的相互转化问题(代码详解)

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息.采用Base64编码具有不可读性,需要解码后才能阅读. Base64由于以上优点被广泛应用于计算机的各个领域,然而由于输出内容中包括两个以上"符号类"字符(+, /, =),不同的应用场景又分别研制了Base64

  • C# 进行图片压缩的示例代码(对jpg压缩效果最好)

    直接上代码 public static class ImageCompress { /// <summary> /// 图片压缩 /// </summary> /// <param name="imagePath">图片文件路径</param> /// <param name="targetFolder">保存文件夹</param> /// <param name="qualit

  • C#中OpenCvSharp 通过特征点匹配图片的方法

    现在的手游基本都是重复操作,一个动作要等好久,结束之后继续另一个动作.很麻烦,所以动起了自己写一个游戏辅助的心思. 这个辅助本身没什么难度,就是通过不断的截图,然后从这个截图中找出预先截好的能代表相应动作的按钮或者触发条件的小图. 找到之后获取该子区域的左上角坐标,然后通过windows API调用鼠标或者键盘做操作就行了. 这里面最难的也就是找图了,因为要精准找图,而且最好能适应不同的分辨率下找图,所以在模板匹配的基础上,就有了SIFT和SURF的特征点找图方式. 在写的过程中查找资料,大都是

  • C#使用OpenCv图像批处理并改变图片大小并且重命名

    添加NuGet包 选择最新版就好了 安装完成后右键项目重新生成方案 使用OpenCvSharp.CPlusPlus命名空间 using OpenCvSharp.CPlusPlus; 写一个函数用来改变图片大小并且重新命名 read_path是存储图片的文件夹的路径,write_path是改变后图片存储的文件夹路径,filename是图片重命名,width和height分别为图片修改后的宽和高 public static void ResizeImg(String read_path,String

  • C# Winform按钮中图片实现左图右字的效果实例

    设置流程 百度查阅了几个资料感觉没啥用,经过自己一番试验,总结了简单的方法,具体做法是 1.从工具栏拖出一个按钮 2.在vs外部 使用编辑进入到画图中使用 修改其像素值 3.设置按钮的image属性,插入图片 4.设置图片的属性 5.关于按钮Text属性的设置 6.看一下效果 需要注意的点 最好事先知道你需要的按钮的大小,比如我需要把button放入到size高度为40px的panel中,则你的图片最好像素值35以下,不然会出现图片超过边框的效果:如果要将设计好的按钮放置到容器内,需考虑到容器本

  • c# 如何实现图片压缩

    一般在web应用中,对客户端提交上来的图片肯定需要进行压缩的.尤其是比较大的图片,如果不经过压缩会导致页面变的很大,打开速度比较慢,当然了如果是需要高质量的图片也得需要生产缩略图. 一般在web应用中,对客户端提交上来的图片肯定需要进行压缩的.尤其是比较大的图片,如果不经过压缩会导致页面变的很大,打开速度比较慢,当然了如果是需要高质量的图片也得需要生产缩略图. 下面贴出我自己琢磨的图片压缩算法,首先这个是未经优化的简单实现:  代码如下: public static System.Drawing

  • C#获取某路径文件夹中全部图片或其它指定格式的文件名的实例方法

    1.编写获取文件名(全路径)子函数 /////param ///path:文件夹路径 ///suffix:后缀格式, 如bmp,txt ///fileList:文件名存放 ///isSubcatalog:true遍历子文件夹,否则不遍历 void getFiles(string path, string suffix, ref List<string> fileList, bool isSubcatalog) { string filename; DirectoryInfo dir = new

  • c# 生成文字图片和合并图片的示例

    生成文字图片: /// <summary> /// 生成文字图片 /// </summary> /// <param name="text"></param> /// <param name="isBold"></param> /// <param name="fontSize"></param> public Image CreateImage(st

  • php 生成文字png图片的代码

    复制代码 代码如下: <? /* php生成文字png图片,可以使用如下方式调用函数: http://www.yourdomian.com/text_png.php3?msg=helloworld+class&rot=15&size=48&font=fonts/ARIAL.TTF */ Header("Content-type: image/png"); class textPNG { var $font = 'fonts/TIMES.TTF'; //默认

  • java 生成文字图片的示例代码

    本文主要介绍了java 生成文字图片的示例代码,分享给大家,具体如下: import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO;

  • java实现合并图片的方法示例

    本文实例讲述了java实现合并图片的方法.分享给大家供大家参考,具体如下: package com.test; import java.io.File; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; public class ImageCombineTest { public static void main(String args[]) { try { // 读取第一张图片 File fileOne = n

  • Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)

    本文实例讲述了Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.IO; public partial

  • 利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例

    前言 最近的一个项目中需要在图片上添加文字,使用了OpenCV,结果发现利用opencv给图像添加文字有局限.可利用的字体类型比较少,需要安装Freetype扩展,比较复杂.而且不能用putText函数输出中文,否则就会出现乱码的情况.只好选择使用Python PIL函数库对照片进行处理,利用Python自带的PIL库扩展图片大小给图片加上文字描述,大多都是库函数调用,只是给定图片宽度后计算文字所需行数的代码需要写. 代码比较丑,but it works. 代码示例 #!/usr/bin/env

  • php实现生成带二维码图片并强制下载功能

    本文主要和大家分享php生成带二维码图片并强制下载实现代码,希望能帮助到大家实现一个自己的二维码. /* 下载二维码 */ public function 测试(){ // 接收传递的参数 $data['keys'] = [ 'b01id'=>trim(I('get.b01id')), 'b02id'=>trim(I('get.b02id')), 'b03id'=>trim(I('get.b03id')), 'brid'=>trim(I('get.brid')), 'unicon'

  • Java实现给图片添加图片水印,文字水印及马赛克的方法示例

    本文实例讲述了Java实现给图片添加图片水印,文字水印及马赛克的方法.分享给大家供大家参考,具体如下: 可以在eclipse中新建个Utils类,把以下代码复制进去直接使用,以下方法实现单个或多个水印的添加 package com.rzxt.fyx.common.util; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import

  • Java图片转字符图片的生成方法

    前面介绍了一篇java实现图片灰度化处理的小demo,接下来再介绍一个有意思的东西,将一个图片转换成字符图片 借助前面图片灰度化处理的知识点,若我们希望将一张图片转成字符图片,同样可以遍历每个像素点,然后将像素点由具体的字符来替换,从而实现字符化处理 基于上面这个思路,具体的实现就很清晰了 @Test public void testRender() throws IOException { String file = "http://i0.download.fd.52shubiao.com/t

  • php文字水印和php图片水印实现代码(二种加水印方法)

    文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件.效果图如下: 实现代码如下: 复制代码 代码如下: $dst_path = 'dst.jpg'; //创建图片的实例$dst = imagecreatefromstring(file_get_contents($dst_path)); //打上文字$font = './simsun.ttc';//字体$black = imagecolorallocate($dst, 0x00, 0x00, 0x

随机推荐