 |
Broncode: thumbnails met het ShotGraph component
Het hier gepresenteerde script maakt het mogelijk om een afbeelding groter of kleiner te maken. Een typische toepassing is het maken van thumbnails.
Wanneer bijvoorbeeld afbeeldingen op de server worden gezet kan met onderstaande code van de afbeeldingen thumbnails worden gemaakt, welke onder een andere bestandsnaam worden opgeslagen.
Het navolgende voorbeeld bestaat uit twee delen, een include bestand die de procedure voor het schalen van afbeeldingen bevat, en de pagina die de procedure aanroept en het resultaat weergeeft.
Het ShotGraph component dat wordt gebruikt staat op onze webservers geïnstalleerd.
het script downloaden
<% Option Explicit %>
<!--#include file="thumb.inc" -->
<html>
<head>
<title>Thumbnail</title>
</head>
<body>
<%
Dim ImgType, lHeight, lWidth, sBron, sDoel
'// Soort afbeelding, 1 = JPeg, 2 = Gif
ImgType = 1
'// Hoogte en breedte van de nieuwe afbeelding.
lHeight = 100
lWidth = 100
'// Lokaties van bestanden gezien vanuit de root van de webserver.
sBron = "/data/source.jpg"
sDoel = "/data/dest.jpg"
'// Het formaat van een afbeelding wijzigen en het resultaat opslaan in een nieuw bestand.
MakeThumbnail sBron, sDoel, ImgType, lHeight, lWidth
%>
<p><img src="<%= sDoel %>" width="<%= lWidth %>" height="<%= lHeight %>" border="0"></p>
</body>
</html>
De procedure die het werkt verzet staat hieronder afgebeeld. Deze code kan worden opgeslagen in een include met de naam thumb.inc, of u kunt de code downloaden.
<%
Sub MakeThumbnail(sSourcefile, sDestfile, btImageType, lHeight, lWidth)
'------------------------------------------------------------------------------------------------------------------------------------
' Het formaat van een jpeg of gif afbeelding wijzigen en opslaan in een nieuw bestand.
'------------------------------------------------------------------------------------------------------------------------------------
Dim objImage, sSource, sDest, lOrigWidth, lOrigHeight, vDummy, btQuality, btProgressive
On Error Resume Next
'// Absolute paden maken.
sSource = Server.MapPath(sSourcefile)
sDest = Server.MapPath(sDestfile)
'// Component voor de beeldbewerking.
Set objImage = CreateObject("ShotGraph.Image")
'// De afbeelding schalen: eerst het huidige formaat bepalen, dan een werkruimte
'// maken, de afbeelding inlezen en deze resizen.
objImage.GetFileDimensions sSource, lOrigWidth, lOrigHeight
objImage.CreateImage lWidth, lHeight, 256
objImage.InitClipboard lOrigWidth, lOrigHeight
objImage.SelectClipboard True
objImage.ReadImage sSource, vDummy, 0, 0
objImage.Resize 0, 0, lWidth, lHeight, 0, 0, lOrigWidth, lOrigHeight, 1
objImage.SelectClipboard False
'// Als btImageType 2 is gaat het om gif-afbeeldingen.
If btImageType <> 2 Then
'// compressie en daarmee de kwaliteit, van 1 tot 100.
btQuality = 70
'// 0 = geen progressive jpeg, 1 = wel progressive.
btProgressive = 0
'// De jpeg opslaan.
objImage.JpegImage btQuality, btProgressive, sDest
Else
'// Gif-image opslaan.
objImage.BuildPalette 30
objImage.GifImage 0, 0, sDest
End If
'// Opruimen.
Set objImage = Nothing
End Sub
%>
|
 |