I den här artikeln kommer jag att gå igenom hur man med hjälp av AspJpeg lägger till en vattenstämpel på en bild (en bild på bild eller text på bild). Mer information om AspJpeg hittar du på deras hemsida. Vi ska alltså placera en text på en bild i denna artikel.
Du kan jobba med JPEG, GIF, BMP, PNG och TIFF, men du kan bara spara bilden i JPEG format. Alltså kan resultatet endast bli av typen JPEG och inget annat.
Det första vi ska göra är att skapa en instans av AspJpeg, och det gör vi med följande kod:
Set aspJpeg = Server.CreateObject("Persits.Jpeg")Därefter måste vi hämta bilden som vi ska jobba med:
aspJpeg.Open Server.MapPath("bilden.jpg")Nu när vi skapat instansen och öppnat bilden som vi ska jobba med så är det dags att ställa inställningarna för texten som vi ska skriva på bilden. Koden förklarar sig själv:
aspJpeg.Canvas.Font.Color = &HFF3300
aspJpeg.Canvas.Font.Family = "Verdana"
aspJpeg.Canvas.Font.Bold = True
aspJpeg.Canvas.Font.Quality = 4
aspJpeg.Canvas.Font.BKMode = "Opaque" 'Krävs för att "Quality" ska fungera
aspJpeg.Canvas.Print 10,500 "Shadi är en grym kille!"
Som du ser så förklarar koden sig själv, det är inte så svårt att förstå. Första raden tar hand om textfärgen, nästa rad typsnittet, sedan fet stil osv osv...
En sak har jag märkt upp med röd stil, det är &H, saken är att du måste skriva det innan du anger den hexadecimala färgen.
Nu när vi skrivit texten på bilden så tänkte jag att vi ska skapa en ram också, vi ska ge den färgen svart och bredden 3 pixlar.
aspJpeg.Canvas.Pen.Color = &H000000
aspJpeg.Canvas.Pen.Width = 3
aspJpeg.Canvas.Brush.Solid = False
aspJpeg.Canvas.DrawBar 1, 1, Jpeg.Width, aspJpeg.Height
Och nu sparar vi bilden:
aspJpeg.Save Server.MapPath("ny_bild.jpg")Här får du koden i sin helhet:
Set aspJpeg = Server.CreateObject("Persits.Jpeg")
aspJpeg.Open Server.MapPath("bilden.jpg")
aspJpeg.Canvas.Font.Color = &HFF3300
aspJpeg.Canvas.Font.Family = "Verdana"
aspJpeg.Canvas.Font.Bold = True
aspJpeg.Canvas.Font.Quality = 4
aspJpeg.Canvas.Font.BKMode = "Opaque" 'Krävs för att "Quality" ska fungera
aspJpeg.Canvas.Print 10,500 "Shadi är en grym kille!"
aspJpeg.Canvas.Pen.Color = &H000000
aspJpeg.Canvas.Pen.Width = 3
aspJpeg.Canvas.Brush.Solid = False
aspJpeg.Canvas.DrawBar 1, 1, Jpeg.Width, aspJpeg.Height
Jpeg.Save Server.MapPath("ny_bild.jpg")
<script runat="server" LANGUAGE="C#">
void Page_Load(Object Source, EventArgs E)
{
ASPJPEGLib.IASPJpeg aspJpeg;
aspJpeg = new ASPJPEGLib.ASPJpeg();
aspJpeg.Open(Server.MapPath("bilden.jpg"))
aspJpeg.Canvas.Font.Color = 0xFF3300;
aspJpeg.Canvas.Font.Family = "Verdana";
aspJpeg.Canvas.Font.Bold = 1;
aspJoeg.Canvas.Font.Quality = 4;
aspJpeg.Canvas.Font.BkMode = "Opaque";
aspJpeg.Canvas.Print(10, 500, "Shadi är en grym kille!", Missing.Value);
aspJpeg.Canvas.Pen.Color = 0x000000;
aspJpeg.Canvas.Pen.Width = 3;
aspJpeg.Canvas.Brush.Solid = 0;
aspJpeg.Canvas.DrawBar(1, 1, aspJpeg.Width, aspJpeg.Height);
aspJpeg.Save( Server.MapPath("ny_bild.jpg") );
FramedImage.Src = "ny_bild.jpg";
}
</script>
Märk att &H är nu bytt mot 0x.
Det finns många fler exempel på hur man kan göra, jag ska försöka skriva fler artiklar om AspJpeg för både ASP och .NET användarna, för det här är smidigt och användbart.
Här får ni se några exempel på hur det till slut kan se ut. Källa: AspJpeg.com
Och detta exempel är relaterat till koden ovan:
Skapades: 2007-08-25 19:20:36
Skribent: Shadi
Lästs 1420 gånger
Betyg: 0 (artikeln har endast 0 röster, det krävs minst 5 för ett betyg)