asp.net实现生成缩略图及加水印的方法示例


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要介绍了asp.net实现生成缩略图及给原始图加水印的方法,结合具体实例形式分析了asp.net图片的缩略图与水印操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了asp.net实现生成缩略图及给原始图加水印的方法。分享给大家供大家参考,具体如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

using System.IO;

using System.Drawing.Imaging;

private void Button1_ServerClick(object sender, System.EventArgs e)

{

  Graphics g=null;

  System.Drawing.Image upimage=null;

  System.Drawing.Image thumimg=null;

  System.Drawing.Image simage=null;

  Bitmap outputfile=null;

  try

  {

    string extension = Path.GetExtension(File1.PostedFile.FileName).ToUpper();

    string filename = DateTime.Now.ToString("yyyyMMddhhmmss");

    string smallpath = Server.MapPath(".")+"/smallimg/";

    string bigpath = Server.MapPath(".")+"/bigimg/";

    int width,height,newwidth,newheight;

    System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);

    if(!Directory.Exists(smallpath))

    Directory.CreateDirectory(smallpath);

    if(!Directory.Exists(bigpath))

    Directory.CreateDirectory(bigpath);

    Stream upimgfile = File1.PostedFile.InputStream;

    string simagefile = Server.MapPath("a8logo.jpg"); //要加水印的文件

    simage=System.Drawing.Image.FromFile(simagefile);

    upimage= System.Drawing.Image.FromStream(upimgfile); //上传的图片

    width = upimage.Width;

    height = upimage.Height;

    if(width>height)

    {

      newwidth=200;

      newheight =(int)((double)height/(double)width * (double)newwidth);

    } else

    {

      newheight=200;

      newwidth=(int)((double)width/(double)height * (double)newheight);

    }

    thumimg = upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero);

    outputfile=new Bitmap(upimage);

    g=Graphics.FromImage(outputfile);

    g.DrawImage(simage,new Rectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel);

    string newpath = bigpath + filename + extension; //原始图路径

    string thumpath = smallpath + filename + extension; //缩略图路径

    outputfile.Save(newpath);

    thumimg.Save(thumpath);

    outputfile.Dispose();

  }

  catch(Exception ex)

  {

    throw ex;

  }

  finally

  {

    if(g!=null)

    g.Dispose();

    if(thumimg!=null)

    thumimg.Dispose();

    if(upimage!=null)

    upimage.Dispose();

    if(simage!=null)

    simage.Dispose();

  }

}

public bool ThumbnailCallback()

{

  return false;

}

以上就是asp.net实现生成缩略图及加水印的方法示例的详细内容!

相关阅读 >>

asp.net mvc5请求处理管道和生命周期的详细教程

asp.net与asp有什么不同

asp.net 传值总结

[asp.net mvc 小牛之路]05 - 使用 ninject

分享asp.net学习笔记(7)webpages 对象详解

有关asp.net如何实现多个文件同时下载问题相关解答

分享19个asp脚本语言的基本技巧

传播智客asp.net高级系列视频资料分享

mvc中获得controller、url及action的asp.net方法详解

asp.net中关于config文件如何读写的实例分享

更多相关阅读请进入《asp.net》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...