Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 14691|Vastaus: 0

[ASP.NET] Käytä yleistä handleria (IHttpHandler) luodaksesi kuvasta globaalin vesileiman

[Kopioi linkki]
Julkaistu 10.9.2015 23.37.26 | | | |


Vesileimat on tarkoitettu estämään kuvien varastamista.

Kaksi tapaa saavuttaa vesileimavaikutus

1) Vesileima voidaan lisätä käyttäjän lataamisen yhteydessä.

a) Hyödyt: Verrattuna kahteen menetelmään, palvelin lähettää tämän kuvan suoraan asiakkaalle aina, kun käyttäjä lukee sen.

b) Miinukset: Tuhoaa alkuperäisen kuvan.

2) Globaalin yleisen käsittelyohjelman kautta, kun käyttäjä pyytää tätä kuvaa, lisää vesileima.

a) Hyödyt: Alkuperäinen kuva ei tuhoudu

b) Haitat: Käyttäjien täytyy vesileimaa pyydetyt kuvat joka kerta kun he tekevät pyynnön, mikä tuhlaa palvelimen resursseja.
  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. }
Kopioi koodi
waterH.ashx-tiedostokoodi on seuraava:

Sitten sinun täytyy konfiguroida seuraava solmu web.config-sivustolla:

system.web-solmun alla
    <httpHandlers>
      <add verb="*" path="Images/*.jpg" type="Watermark.waterH"/>
    </httpHandlers>

Alussa konfiguroinni solmut olivat:
    <httpHandlers>
      <add verb="*" path="Images/*.jpg" type="waterH"/>
    </httpHandlers>

raportoidaan virheestä,
Virhekonfiguraatio

Kuvaus: Virhe tapahtui käsittelyssä profiilia, joka vaaditaan palveluiden tarjoamiseksi pyynnölle. Tarkista alla olevat virhetiedot ja muokkaa konfiguraatiotiedostoa asianmukaisesti.

Analysoijan virheilmoitus: Tyyppi "waterH" ei latautunut.

Lähdevirhe:


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




Lopuksi,waterH projektin nimellä!
Lopuksi liitä kopio lähdekoodista: Watermark.rar (234.64 KB, Latausten määrä: 0, 售价: 2 粒MB)




Edellinen:360 Coolpad Zhou Hongyi ja Jiang Chao repivät toisiaan kappaleiksi vai hypeävätkö?
Seuraava:Verkkosivusto js perustuu hevosen ideaan, ja ulkoinen siirto on j/c
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com