浅谈ASP.NET Image Generation


  本文标签:ASP.NET Image Generation

  ASP.NET Image Generation内置了ImageResizeTransform类,可以实现图片大小调整功能  。

  也可以扩展ImageTransform实现自己的图片变换类  。

  下面使用ASP.NET Image Generation水印的代码:

  1. usingSystem;  
  2. usingSystem.Collections.Generic;  
  3. usingSystem.Linq;  
  4. usingSystem.Web;  
  5. usingMicrosoft.Web;  
  6. usingSystem.Collections.Specialized;  
  7. usingSystem.Data.SqlClient;  
  8. usingSystem.Drawing;  
  9.  
  10. namespaceNET35Lab.GeneratedImage.Web  
  11. {  
  12.  
  13. publicclassImageHandler1:ImageHandler  
  14. {  
  15.  
  16. publicImageHandler1()  
  17. {  
  18. this.ImageTransforms.Add(newImageResizeTransform
    {
    Width=320,Mode=ImageResizeMode.Fit});  
  19. this.ImageTransforms.Add(newCopyrightTransform{Text="Guushuuse.NET"});  
  20. this.EnableClientCache=true;  
  21. this.EnableServerCache=true;  
  22.  
  23. }  
  24.  
  25. publicoverrideImageInfoGenerateImage(NameValueCollectionparameters)  
  26. {  
  27.  
  28. intintimageID=int.Parse(parameters["imageid"]);  
  29.  
  30. SqlConnectionconnection=newSqlConnection(  
  31. @"DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.
    mdf;
    IntegratedSecurity=True;UserInstance=True;");  
  32.  
  33. connection.Open();  
  34.  
  35. SqlCommandcommand=newSqlCommand
    ("selectimage_datafromt_imageswhereimage_id="+imageID,connection);  
  36.  
  37. SqlDataReaderdr=command.ExecuteReader();  
  38.  
  39. dr.Read();  
  40.  
  41. returnnewImageInfo((Byte[])dr[0]);  
  42.  
  43. }  
  44. }  
  45.  
  46. publicclassCopyrightTransform:ImageTransform  
  47. {  
  48. privateconstintVERTICAL_PADDING=5;  
  49. privateconstintHORIZONAL_PADDING=5;  
  50.  
  51. publicstringText{get;set;}  
  52. publicFontFont{get;set;}  
  53. publicColorFontColor{get;set;}  
  54.  
  55. publicCopyrightTransform()  
  56. {  
  57. //AssignDefaults  
  58. FontColor=Color.FromArgb(128,255,0,0);  
  59. Font=newFont("Courier",13);  
  60. }  
  61.  
  62.  
  63. publicoverrideSystem.Drawing.ImageProcessImage(System.Drawing.Imageimg)  
  64. {  
  65. GraphicsGraphicsgra=Graphics.FromImage(img);  
  66. SizeFsz=gra.MeasureString(Text,Font);  
  67. gra.DrawString(Text,Font,newSolidBrush(FontColor),
    img.Width-sz.Width-HORIZONAL_PADDING,img.Height-sz.Height-VERTICAL_PADDING);  
  68. returnimg;  
  69. }  
  70.  
  71. publicoverridestringUniqueString  
  72. {  
  73. get  
  74. {  
  75. returnbase.UniqueString+Text+FontColor.ToString()+Font.ToString();  
  76. }  
  77. }  
  78. }  

  以上是介绍ASP.NET Image Generation