方舟 ( 个人网站) 技术类别: .net

你试过用.net来进行图像处理吗?公司最近进行的一个项目,数据库中存入了很多的产品图片,可是都没有版权信息,当时客户要求将所有的图片打上公司名称?这时候,你该怎么办?

你试过用.net来进行图像处理吗?公司最近进行的一个项目,数据库中存入了很多的产品图片,可是都没有版权信息,当时客户要求将所有的图片打上公司名称?这时候,你该怎么办?

虽说我还是江湖嫩手,可是对这一问题的解决方案还是很多,归结如下:

1.使用图形处理软件,如Photoshop等,利用其批处理功能,可以实现这个功能,可是每次数据录入员加进图片的话,还得加工一下图片,很麻烦的,看录入员大姐平常对我很不错,每日笑脸相迎,能忍心折磨她么?这个方案否决了。

2.使用.net行云流水般的图像处理,当录入员大姐上传图片的时候,就自动加上公司标记,这样岂不更好,嗯,这想法不错,可以进入2005最佳解决方案第万强了,好说干就干。

using System.Drawing;
using System.IO;
using System.Drawing.Imaging;

private void AddTextToImg(string fileName,string text)
        {
            if(!File.Exists(MapPath(fileName)))
            {
                throw new FileNotFoundException("The file don't exist!");
            }
           
            if( text == string.Empty )
            {
                return;
            }
            //还需要判断文件类型是否为图像类型,这里就不赘述了

System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
            Bitmap bitmap = new Bitmap(image,image.Width,image.Height);
            Graphics g = Graphics.FromImage(bitmap);

float fontSize = 12.0f;             //字体大小
            float textWidth = text.Length*fontSize;  //文本的长度
            //下面定义一个矩形区域,以后在这个矩形里画上白底黑字
            float rectX = 0;       
            float rectY = 0;
            float rectWidth = text.Length*(fontSize+8);
            float rectHeight = fontSize+8;
            //声明矩形域
            RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);

Font font = new Font("宋体",fontSize);   //定义字体
            Brush whiteBrush = new SolidBrush(Color.White);   //白笔刷,画文字用
            Brush blackBrush = new SolidBrush(Color.Black);   //黑笔刷,画背景用

g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);

g.DrawString(text,font,whiteBrush,textArea);
            MemoryStream ms = new MemoryStream( );
            //保存为Jpg类型
            bitmap.Save(ms,ImageFormat.Jpeg);

//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
            Response.Clear();
            Response.ContentType = "image/jpeg";
            Response.BinaryWrite( ms.ToArray() );

g.Dispose();
            bitmap.Dispose();
            image.Dispose();
        }

调用时很简单,

AddTextToImg("me.jpg","小智");

一切OK了,感觉.net确实好强大,这些功能在Asp中可是奢侈品了,而在.Net环境中却能轻而易举的完成!

.net 在图片上写字相关推荐

  1. 怎么用html把字写到图片上,用HTML代码在图片上写字

    一.以图片作为背景.在图片上写字,主要是在 里用到了(Spacer)空白. type="horizontal" align=#> 水平空白 align=center(居中), ...

  2. 在自行下载的背景图片上写字

    在背景图片上写字 1 下载并修改图片 2 代码 3 其它例子 3.1 不用空格分行 3.2 竖行 主要是参考了 写对联的代码,发散思维,联想到换成自己随便从网页上下载一张图片作为背景,在上面写字是不是 ...

  3. java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解

    文章目录 前言 一.直接上代码 1. 写字方法 2. 换行算法 二. 叙述换行算法 前言 代码都上传到GitHub了,这里仅仅是贴出来主要部分,GitHub传送门:https://github.com ...

  4. . net core在图片上写字

    . net core在图片上写字 using (System.Drawing.Image bitmap = System.Drawing.Image.FromFile("../../../图 ...

  5. php如何在图片上写字,php在图片上写字并生成图片

    http://www.doczj.com/doc/db4fbed65022aaea988f0f0c.html涮涮网 用php在图片上写字(文字或数字),并生成新图片 下面是自己封装的一个函数: //调 ...

  6. php写字本写,php在图片上写字的类

    php在图片上写字的类 class showChinaText { var $text = 'php网站程序开发'; var $font = 'fonts/simsun.ttc'; //如果没有要自己 ...

  7. python怎么在图片上写字的软件_python 实现PIL模块在图片画线写字

    图片上画线条 import sys from PIL import Image,ImageDraw im = Image.open("th.png") draw = ImageDr ...

  8. java 图片上写字_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  9. java 两张图片合并_java 在图片上写字,两个图片合并的实现方法

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  10. 在一个图片上写字并保存

    在一个图片上写字然后在保存出来可以先将图片导入,然后利用setpen在图上写字然后导出图片 下面提供源代码 void Widget::SaveImage() {QImage image = QPixm ...

最新文章

  1. 我是如何设计 Upload 上传组件的
  2. 把自己的项目布到服务器,如何把自己的开源项目发布到Pypi服务器
  3. 如何自学python基础-零基础如何学习python
  4. 《OpenGL超级宝典第5版》学习笔记(一)—— 第一个OpenGL程序
  5. 语音用户界面基本设计原则
  6. Java中的时间和日期(下)
  7. Zookeeper 教程:Zookeeper作为Hadoop和Hbase的重要组件,为分布式应用程序协调服务
  8. HDU 6183 2017广西邀请赛:Color it(线段树)
  9. asp.net 404页面
  10. 音频编解码介绍(最全v1.0)
  11. 2019蓝桥杯Java决赛题答案_2019第十届蓝桥杯Java题
  12. 基于微信跳蚤市场二手交易小程序系统设计与实现 开题报告
  13. String Shifting(今日头条2017秋招真题)
  14. 为什么只看重结果_只注重结果不注重过程的话
  15. 使用total commander打开当前目录
  16. app微信登陆 小程序微信授权登陆
  17. 转:浅谈Radius协议 -来自CSDN:http://blog.csdn.net/wangpengqi/article/details/17097221
  18. 数组和字符串赋值的问题(定义时不初始化)
  19. 大数据发展必备三个条件
  20. Python运维常用的脚本,提高工作效率就靠它了

热门文章

  1. 【VOLTE】SPS 半持续调度
  2. Android开发 打造自己的Annotation框架
  3. 大学生html5实训心得体会,实训心得体会600字(精选5篇)
  4. C++:深入理解C++11新特性:Chapter3:左值和右值
  5. 亮相Google I/O,字节跳动是这样应用Flutter的
  6. 趣味代码 python画小猪佩奇
  7. 走进通信:为什么4G信号满格,却上不了网呢
  8. 视频倍速调整(ffmpeg)
  9. vue页面详情页返回列表页_vue 详情页返回列表页,保留列表页之前的筛选条件...
  10. linux从零基础开始