Image bgimage = Image.FromFile(flieUrl + bgImg);
if (bgimage != null)
{
Bitmap bmp1 = new Bitmap(bgimage); //新建一个背景图大小的图像文件
Bitmap bmp2 = new Bitmap(bmp1);//将图片流复制到新的图片流中

Graphics draw = null;

int towidth = bgimage.Width;
int toheight = bgimage.Height;

//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(towidth, toheight);
//新建一个画板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(bgimage, 0, 0);

try
{
//画二维码
Image code_img = Image.FromStream(ms);
g.DrawImage(code_img, new Rectangle(Convert.ToInt32(bgimage.Width / 5), bgimage.Height / 3, code_img.Width, code_img.Height));
code_img.Dispose();

//画运营商logo和名称
//Image logo_img = Image.FromFile(GlobalLogic.GetFileServerAddress() + op.Logo);
//g.DrawImage(logo_img, new Rectangle(10, 10, logo_img.Width, logo_img.Height));
//logo_img.Dispose();

Font f = new Font("宋体", 20, FontStyle.Bold);
Brush br = new SolidBrush(Color.White);
if (op.OpertorsName.Length > 15)
{
op.OpertorsName = op.OpertorsName.Substring(0, 10) + "...";
}
g.DrawString(op.OpertorsName, f, br, new RectangleF(Convert.ToInt32(bgimage.Width / 3.5), 40, 400, 40));

//画门店名称
Font fc = new Font("宋体", 20, FontStyle.Bold);
Brush brc = new SolidBrush(Color.White);
g.DrawString(storeName, fc, brc, new RectangleF(Convert.ToInt32(bgimage.Width / 2.5), bgimage.Height - (bgimage.Height / 5), 400, 40));

Random r = new Random();
string uploadFileName = DateTime.Now.ToString("MMddhhmmss") + r.Next(100000, 999999);
url = string.Format("/Upload/Temp/{0}", uploadFileName);
//以jpg格式保存缩略图

//用新建立的image对象拷贝bitmap对象 让g对象可以释放资源
draw = Graphics.FromImage(bitmap2);
draw.DrawImage(bitmap, 0, 0);

bgimage.Dispose();
bitmap.Dispose();
g.Dispose();
//保存调整在这里即可

bitmap2.Save(HttpContext.Current.Server.MapPath(url) + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
url = url + ".jpg";

}
catch (System.Exception e)
{
throw e;
}
finally
{

}

c#代码输入图片的更多相关文章

  1. Carbon - 在线生成精美的代码片段图片(含插件)

    Carbon 是一个可以帮助你创建和分享源代码美丽图像的小工具.开始在文本区域输入或拖入代码文件以开始使用.你还在等什么? 让你的设计实力给阅读者留下深刻印象. 在线演示      免费下载 您可能感 ...

  2. Visual studio智能感知挡住了当前代码输入行

    AssistX->Listboxes->Enable Visual Assist completion, suggestion and member list in .. 如果勾选了该项就 ...

  3. MVC中return File(byte[],"image/jpeg")输入图片不清晰

    MVC中需要输入图片的时候有一个便捷的方法,return File(byte[],"image/jpeg"); 但是这样处理的图片很不清晰(特别是要进行缩放,DrawImage,D ...

  4. 如何利用CSS代码使图片和文字在同一行显示且对齐

    对于初学css的新手朋友来说,经常会遇到这样一个问题,当文字和图片出现在同一行或者同一个div里面的时候,在浏览器中运行出来的显示效果往往是在不同的行,那么,我们怎么才能利用CSS代码使图片和文字在同 ...

  5. 提升c++builder 代码输入流畅度的配置

    提高c++builder 代码输入流畅度 1.输入指针的函数名后,识别函数参数移动光标到括弧内,此功能太慢,有明显延迟,建议关闭.关闭以后,输入函数名不会自动添加(),需要自己手动输入括弧了,不过速度 ...

  6. c++builder 代码输入助手

    c++builder 代码输入助手 指针箭头.指针符号-> 输入太麻烦 java.c#.delphi 语音,输入. 一个字符,就可以弹出代码提示窗口.很是方便. c++,输入->,需要按3 ...

  7. CSS代码实现图片防盗链

    CSS代码实现图片防盗链的方法其实很简单.在CSS文件中添加以下代码: img { filter:exPRession( this.不能去掉 ? "" : ( (!this.com ...

  8. Python人工智能之图片识别,Python3一行代码实现图片文字识别

    1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:

  9. iOS Dev (50)用代码实现图片加圆角

    用代码实现图片加圆角:       iconView.layer.masksToBounds = YES;       iconView.;

随机推荐

  1. 网络通信 --> 消息队列

    消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法.可以通过发送消息来避免命名管道的同步和阻塞问题.但是消息队列与命名管道一样,每个数据块都有一个最大长度的限制. Linux用宏M ...

  2. java各种概念 Core Java总结

    Base: OOA是什么?OOD是什么?OOP是什么?{ oo(object-oriented):基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软件系统 ...

  3. Oracle查询优化改写--------------------范围处理

    一.定位连续值的范围 二.查找同一组或分区中行之间的差

  4. Sublime Text、webstorm等编译器快速编写HTML/CSS代码的技巧

    Sublime Text.webstorm等编译器,如果你从事Web前端开发的话,对这几款软件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演 ...

  5. nvm配置

    多版本安装方式 卸载已有的Node.js 下载nvm 在C盘创建目录dev 在dev目中中创建两个子目录nvm和nodejs 并且把nvm包解压进去nvm目录中 在install.cmd文件上面右键选 ...

  6. Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...

  7. Java基础学习笔记九 Java基础语法之this和super

    构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法.当 ...

  8. Spring学习笔记(1)

    激发pojo的潜能,不会让pojo类继承实现或导入与Spring API相关的任何东西 那么spring怎么装配pojo呢-------->依赖注入(最大好处:松耦合) 耦合具有两面性: 一方面 ...

  9. C语言函数2

    一.PTA实验作业 6-3 使用函数判断完全平方数: 1. 本题PTA提交列表: 2. 设计思路: 3.本题调试过程碰到问题及PTA提交列表情况说明: 1.一开始考虑让输入值N去整除一个循环变量i,i ...

  10. c语言第五次作业--函数

    一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ...