GDI简单的图片处理

前天有个项目需求是在一张图片上面画些东西(点,线,圆等);目标:在Default2.aspx上显示一个可以自由处理的图片

下代码如下:

前台页面代码:

Default2.aspx文件(需要显示处理后的图片页面)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<img src="LoadPic.aspx" alt="#"/>//从Loadpic.aspx加载来的处理后的图片,也就是说,可以把LoadPic.aspx看作一个图片的“路径”
</div>
</form>
</body>
</html>

//文件LoadPic.aspx.cs代码:

using System;

using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class LoadPic: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

Bitmap image1 = (Bitmap)System.Drawing.Image.FromFile("C:\\Users\\Administrator\\Desktop\\1242397_104821039_2.jpg", true);//参数1:图片的路径;参数2:Bool值

// Bitmap savepic = new Bitmap(image1,20 ,10);更改图片大小
Graphics g = Graphics.FromImage(image1);//拿到图片的画布,注意在画布上面画东西

//画线
int x1 = 50;
int x2 = 70;
int y1 = 80;
int y2 = 120;
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);//两点确定直线

//画一个圆
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Pen pen = new Pen(Color.Red);//画笔颜色
g.DrawEllipse(pen, 250, 200, 100, 100);//画椭圆的方法,x坐标、y坐标、宽、高,如果是100,则半径为50

//随意写上一些字符串
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));//设置字体
Brush brush = new System.Drawing.SolidBrush(Color.Red);//颜色
g.DrawString("写上一些东西", font, brush, 400, 200);

通过流的操作进行对象的输入输出(输入流,输出流)
System.IO.MemoryStream ms = new System.IO.MemoryStream(); //生成一个数据流
image1.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);保存到流中(输入流)
Response.ClearContent();//清除缓冲区流中的所有内容
Response.ContentType = "image/jbg";
Response.BinaryWrite(ms.ToArray());//将一个二进制字符串写入 HTTP 输出流(输出图片)
g.Dispose();释放Graphics 的资源
image1.Dispose();同样释放

}

}

此时Default2.aspx就会显示相应处理的图片,本例过于简单,如果想处理复杂,可以查MSDN相关GDI操作,希望能起到举一反三的功效。

时间: 2024-07-30 13:48:16

GDI简单的图片处理的相关文章

C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)

using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControl

JS实现简单的图片轮转

+(UIImage*)createImageFromView:(UIView*)view { //obtain scale CGFloat scale = [UIScreen mainScreen].scale; 开始绘图,下面方法,第一个参数表示区域大小.第二个参数表示是否是非透明的.如果需要显示半透明效果,需要传NO,否则传YES.第三个参数就是屏幕密度了 UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.frame.size.wi

简单的图片裁剪服务器

自己写的一个简单的图片服务器,可以读取FastDFS上的图片,根据参数进行图片裁剪输出到前台 改项目可以上传图片到FastDFS,读取FastDFS上存储的图片,前面可以增加Varnish图片缓存服务器缓解图片裁剪压力 使用一个简单的Servlet实现 package com.imgcut.servlet; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException;

Qt项目实战2:简单的图片查看器(1)

在博文http://www.cnblogs.com/hancq/p/5817108.html中介绍了使用空的Qt项目创建带有菜单栏.工具栏的界面. 这里,使用一个简单的图片查看器项目,来熟悉一下Qt的图片显示和基本操作. 该项目分为两部分: (1)实现图片的打开.关闭.居中显示.上一张/下一张切换 (2)实现图片的放大.缩小.左旋.右旋.另存为等操作 需要用的Qt类: QFileDialog QImage QPixmap QFileInfo 使用空的Qt项目创建带有菜单栏和工具栏的界面的操作参考

最简单的图片查看器

最简单的图片查看器,支持放大.缩小.鼠标拖动. 下面是代码,非常简单: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>pic view</title> </head> <body> <div id="pic" class="pic"

h5+css3最简单的图片飞入以及淡入淡出效果

正如很多小伙伴们所知道的,楼主最近在开发移动端的响应式布局的自适应页面了,现在分享一个刚写完的小demo html: <!doctype html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-sca

jquery简单的图片切换效果,支持pc端、移动端的banner图片切换开发

详细内容请点击 无意中看见了两年前写的一个图片切换,那会儿刚刚学习网页制作,可以说是我的第一个处女座的jquery图片切换效果.无聊之余对它的宽度稍稍做了一下修改,变成了支持pc端.手机端全屏的banner图片切换效果. 写法很简单,网页初学者们或者wenbapp初学者们可以拿去学习学习,也可以在这基础上加上手机的图片滑动切换效果.废话不多说,下面说说这个简单的图片切换的效果吧! 首先以下是图片切换的效果图:   图片切换效果html内容: <div class="tyna2"&

简单实现图片间的切换动画 主要用到ViewPager

简单实现图片间的切换动画 主要用到ViewPagerViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view.ViewPager类需要一个PagerAdapter适配器类给它提供数据 PagerAdapter适配器,必须实现四个方法getCount.isViewFromObject.destroyItem.instantiateItem import android.os.Bundle;import android.support.v4.view.PagerA

制作简单的图片浏览器

(1)加载图片和浏览图片的布局文件 图片预先放置在这里. 主要的布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fi