步步为营-71-asp.net的简单练习(图片处理)

1 原有图片添加水印

1.1 封装一个类,用于获取文件路径

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;

namespace _06_图片处理
{
    public static class FileHelper
    {
        public static string GetFilePath()
        {
            //02 创建文件保存路径
            string savePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "Upload\\");
            //02-01 根据日期创建文件夹
            DateTime dt = DateTime.Now;
            savePath += dt.Year + "\\" + dt.Month + "\\" + dt.Day;
            if (!Directory.Exists(savePath))
            {
                //创建文件夹
                Directory.CreateDirectory(savePath);
            }
            //02-02文 件名为当前时间
            //savePath += "\\" + dt.ToString().Replace(‘:‘, ‘-‘) + ".gif";
            savePath += "\\" + dt.ToString().Replace(‘:‘, ‘-‘) ;
            return savePath;
        }
    }
}

FileHelper

1.2 html页面和ashx页面

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form action="AddLogo.ashx" method="post" enctype="multipart/form-data">
        <input type="file" name="OrImg" />
        <input type="submit" value="添加水印" />
    </form>
</body>
</html>

html

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

namespace _06_图片处理
{
    /// <summary>
    /// AddLogo 的摘要说明
    /// </summary>
    public class AddLogo : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //01 获取上传图片
            HttpPostedFile pf = context.Request.Files["OrImg"];

            #region 02 添加水印
            //02-01 创建画布
            Bitmap bm = new Bitmap(pf.InputStream);
            //02-02 创建绘图工具
            Graphics gs = Graphics.FromImage(bm);
            //02-03 拿到logo图片
            Bitmap bmLogo = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + "/images/LogoYK.GIF");
            //02-04 开始绘制
            gs.DrawImage(bmLogo,bm.Width-bmLogo.Width,bm.Height-bmLogo.Height,bmLogo.Width,bmLogo.Height);
            #endregion

            #region 03 保存
            //03-01 获取文件扩展名
            string extName = pf.FileName.Substring(pf.FileName.LastIndexOf(‘.‘));
            //03-02 获取文件路径
            string ph = FileHelper.GetFilePath();
            string savePath = ph + extName;
            //03-03 saveAs
            bm.Save(savePath);
            #endregion

            //04 展示
            context.Response.Write("<img src=‘" + savePath.Substring(savePath.IndexOf("Upload")) + "‘/> ");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

AddLogo.ashx

1.3 运行效果

时间: 2024-10-11 14:39:45

步步为营-71-asp.net的简单练习(图片处理)的相关文章

ASP.NET 实现简单的图片防盗链介绍

在此,网站图片防盗链的方法是,通过获取Http请求头中的 Referer 标头与本网站域名比较,来判断用户是否来自本站跳转过来的 . 创建一个全局处理程序,用来处理images目录下的图片的直接请求: using System; using System.Web; /// <summary> ///DaoLian 的摘要说明 /// </summary> public class DaoLian:IHttpHandler { public bool IsReusable { get

用Asp.net实现简单的文字水印

用Asp.net实现简单的文字水印  经常看见MOP上有人贴那种动态的图片,就是把一个字符串作为参数传给一个动态网页,就会生成一个带有这个字符串的图片,这个叫做文字水印.像什么原来的熊猫系列,还有后来的大树和金条,都挺有意思.这东西看着挺好玩的,想做个玩玩.查了查资料,发现用.net来做这个是很容易的,就用Asp.net写了一个非常简单的.全部的代码如下: <%@ Import Namespace="System" %> <%@ Import Namespace=&q

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"

【转】Asp.Net MVC3 简单入门详解过滤器Filter

原文地址:http://www.cnblogs.com/boruipower/archive/2012/11/18/2775924.html 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了. 在Asp.net Mvc

【转】ASP.NET Cookies简单应用 记住用户名和密码

不要试图给Password类型的TextBox赋值! 在asp.net中,不要试图给Password类型的TextBox控件赋值! 无论是在设计或是运行时,都不可以的.猜测的原因是,password类型的TextBox控件从根本上,没有Text属性的Set方法,只有Get !!同样,html中的Input控件,如果设置为ruanat="server",password类型的Input控件也是一样.无论是在设计或是运行时,都不容许设置它的值. 解决办法:txtPassword.Attri

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"&