See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 14691|Vastuse: 0

[ASP.NET] Kasuta üldist haldajat (IHttpHandler), et luua pildile globaalne vesimärk

[Kopeeri link]
Postitatud 10.09.2015 23:37:26 | | | |


Vesimärgid on mõeldud selleks, et takistada meil pilte varastamast.

Vesimärgi efekti saavutamiseks kaks viisi

1) Vesimärgi saab lisada kasutaja üleslaadimisel.

a) Eelised: Võrreldes kahe meetodiga saadab server selle pildi otse kliendile iga kord, kui kasutaja seda loeb.

b) Miinused: Hävitab originaalpildi.

2) Globaalse üldtöötlusprogrammi kaudu, kui kasutaja seda pilti soovib, lisa vesimärk.

a) Eelised: Originaalpilt ei hävi

b) Puudused: Kasutajad peavad iga kord päringu tegemisel soovitud pildid vesimärgiga märgistama, mis raiskab serveri ressursse.
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Drawing;
  6. using System.IO;

  7. namespace Watermark
  8. {

  9.     /// <summary>
  10.     /// waterH 的摘要说明
  11.     /// </summary>
  12.     public class waterH : IHttpHandler
  13.     {
  14.         public waterH()
  15.         { }
  16.         private const string WATERMARK_URL = "~/Test/watermark.png";
  17.         private const string DEFAULTIMAGE_URL = "~/Test/watermark.png";
  18.         public void ProcessRequest(HttpContext context)
  19.         {
  20.             System.Drawing.Image Cover;
  21.             if (File.Exists(context.Request.PhysicalPath))
  22.             {
  23.                 Cover = Image.FromFile(context.Request.PhysicalPath);
  24.                 Image watermark = Image.FromFile(context.Request.MapPath(WATERMARK_URL));
  25.                 Graphics g = Graphics.FromImage(Cover);
  26.                 g.DrawImage(watermark, new Rectangle(Cover.Width - watermark.Width, Cover.Height - watermark.Height, watermark.Width, watermark.Height), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel);
  27.                 g.Dispose();
  28.                 watermark.Dispose();
  29.             }
  30.             else
  31.             {
  32.                 Cover = Image.FromFile(context.Request.MapPath(DEFAULTIMAGE_URL));
  33.             }
  34.             context.Response.ContentType = "images/jpeg";
  35.             Cover.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
  36.             Cover.Dispose();
  37.             context.Response.End();
  38.         }

  39.         public bool IsReusable
  40.         {
  41.             get
  42.             {
  43.                 return false;
  44.             }
  45.         }
  46.     }
  47. }
Kopeeri kood
waterH.ashx failikood on järgmine:

Seejärel pead seadistama järgmise sõlme web.config-is:

system.web sõlme all
    <httpHandlers>
      <add verb="*" path="Pildid/*.jpg" type="Watermark.waterH"/>
    </httpHandlers>

Alguses olid seadistatud sõlmed:
    <httpHandlers>
      <add verb="*" path="Pildid/*.jpg" type="waterH"/>
    </httpHandlers>

teatab veast,
Valekonfiguratsioon

Kirjeldus: Viga tekkis profiili töötlemisel, mis on vajalik teenuse osutamiseks päringule. Palun kontrollige allpool konkreetseid veaandmeid ja muutke konfiguratsioonifaili vastavalt.

Analüsaatori veateade: Ebaõnnestus laadida tüüpi "waterH".

Allikaviga:


15. rida: <system.web>
16. <httpHandlers>rida:
17. rida: <add verb="*" path="Images/*.jpg" type="waterH"/>
18. rida: </httpHandlers>
19. rida: <kompilatsioon debug="true" targetFramework="4.0" />




Lõpuks,waterH koos projekti nimega!
Lõpuks lisa lähtekoodi koopia: Watermark.rar (234.64 KB, Allalaadimiste arv: 0, 售价: 2 粒MB)




Eelmine:360 Coolpad Zhou Hongyi ja Jiang Chao rebivad üksteist laiali või hüpevad?
Järgmine:Veebileht js keskendub hobuse ideele ja väline ülekandmine on j/c
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com