惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Cloudbric
Cloudbric
P
Palo Alto Networks Blog
T
Threatpost
T
Tor Project blog
T
Tenable Blog
AWS News Blog
AWS News Blog
Project Zero
Project Zero
L
LangChain Blog
Cyberwarzone
Cyberwarzone
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
C
CERT Recently Published Vulnerability Notes
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Latest
Security Latest
云风的 BLOG
云风的 BLOG
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
MongoDB | Blog
MongoDB | Blog
aimingoo的专栏
aimingoo的专栏
K
Kaspersky official blog
Jina AI
Jina AI
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
D
DataBreaches.Net
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Secure Thoughts
TaoSecurity Blog
TaoSecurity Blog
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
IT之家
IT之家
Forbes - Security
Forbes - Security
The Hacker News
The Hacker News
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
Y
Y Combinator Blog

博客园 - 风焰庄主

React中,useContext+useReducer对比Redux React中,useReducer和useState python, C++, C# 计算速度简单对比 对三层架构的简单改进 .net程序在64位系统上报 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 问题解决 DropBox把目录设置在U盘里面的方法 工作过公司的体会--结构完整的企业其实还是挺吸引人的 努力与付出 微软用于写Javascript的一个插件,Script# 项目管理的一点想法 介绍一况挺好用的Javascript编辑器(带项目) PHP访问C#建立的Webservice 搜索引擎一:介绍 纪念一下Jerry 在中信66楼微软Offic参加讲座 关于地理信息信息点数据采集一些方法 介绍一下JS调试和浏览器调试工具 服务器不支持WebResource.axd的特殊处理 嫦娥一号发射
简单的C#进行图片操作
风焰庄主 · 2007-12-21 · via 博客园 - 风焰庄主

  最近做东西,需要在一个服务器已经存在的图片上,在上面画一些标注(只是简单的圆形矩形文字之类)。以前倒还真没有做过图形操作,不过听说挺简单的。就问了一下,大家说使用Graphics类。
那么,就可以简单得到下面的代码了。

 1        // 得到图片
 2        System.Drawing.Image img = System.Drawing.Image.FromFile ( this.TextBox1.Text );
 3        Graphics g = Graphics.FromImage ( img );
 4        Pen p = new Pen ( Color.White, 2 );
 5        g.DrawImage ( img, 1010 );
 6        
 7        // 画圆和文字
 8        g.DrawEllipse ( p, 101055 );
 9        g.DrawString ( "这里是圆"new Font ( "宋体"9 ), Brushes.White, new PointF ( 2020 ) );
10
11        // 填充一个圆
12        g.FillEllipse ( Brushes.White, 101055 );
13
14        // 显示到页面上,不生成真正的文件
15        Response.ContentType = "image/gif";
16        img.Save ( Response.OutputStream, ImageFormat.Jpeg );

这样在页面上就显示一个图片了。并且画了一个圆。

PS:用一个笨方法把多个图合并到一个图里面:

 1// 合并四张图
 2// 96*96的图
 3System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" );
 4// 48*48的图
 5System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" );
 6Graphics g = Graphics.FromImage ( imgBig );
 7g.DrawImage ( img, 00 );
 8g.DrawImage ( img, 490 );
 9g.DrawImage ( img, 049 );
10g.DrawImage ( img, 4949 );

PS2:用一个方法截取合并后的图

 1// 144*144的图
 2        System.Drawing.Image imgBig = System.Drawing.Image.FromFile ( "c:\\qcd_logo2.PNG" );
 3// 48*48的图
 4        System.Drawing.Image img = System.Drawing.Image.FromFile ( "c:\\qcd_logo.bmp" );
 5        Graphics g = Graphics.FromImage ( imgBig );
 6        Pen p = new Pen ( Color.Red, 2 );
 7// 全部合并,即3*3
 8        g.DrawImage ( img, 00 );
 9        g.DrawImage ( img, 490 );
10        g.DrawImage ( img, 049 );
11        g.DrawImage ( img, 4949 );
12        g.DrawImage ( img, 970 );
13        g.DrawImage ( img, 097 );
14        g.DrawImage ( img, 9797 );
15        g.DrawImage ( img, 4997 );
16        g.DrawImage ( img, 9749 );
17        g.DrawEllipse ( p, 49491010 );
18        g.DrawString ( "这是圆"new Font ( "宋体"9 ), Brushes.Red, new PointF ( 5555 ) );
19
20// 切换到小图
21        g = Graphics.FromImage ( img );
22        // 截取的大图范围
23        Rectangle rect = new Rectangle ( 49494848 );
24// 截取大图
25        g.DrawImage ( imgBig, 00, rect, GraphicsUnit.Pixel );
26
27        // 显示到页面上,不生成真正的文件
28        Response.ContentType = "image/gif";
29        img.Save ( Response.OutputStream, ImageFormat.Jpeg );