Transparent image resize
HejsaJeg har nogle billeder, som jeg skallerer ved hjælp af GetThumbnailImage
Det går egentlig også meget godt. Problemet er bare, at med transparent gif billeder bliver det der før var transparent nu sort.
Er der nogle af jer der har erfaringer med det? Og hvordan kan jeg løse det?
Her er den kode jeg bruger:
Function ThumbnailCallback() As Boolean
Return False
End Function
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Read in the image filename to create a thumbnail of
Dim imageUrl As String = Request.QueryString("img")
'Read in the width and height
Dim imageHeight As Integer = Request.QueryString("h")
Dim imageWidth As Integer = Request.QueryString("w")
'Make sure that the image URL doesn't contain any /'s or \'s
If imageUrl.IndexOf("/") >= 0 Or imageUrl.IndexOf("\") >= 0 Then
'We found a / or \
Response.End()
End If
'Add on the appropriate directory
imageUrl = "/trustware/images/" & imageUrl
Dim fullSizeImg As System.Drawing.Image
fullSizeImg = System.Drawing.Image.FromFile(Server.MapPath(imageUrl))
FilExt = Right(imageUrl, Len(imageUrl) - InStrRev(imageUrl, "."))
'Do we need to create a thumbnail?
Dim FilExt As String
Response.ContentType = "image/" & FilExt
If imageHeight > 0 And imageWidth > 0 Then
Dim dummyCallBack As System.Drawing.Image.GetThumbnailImageAbort
dummyCallBack = New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)
Dim thumbNailImg As System.Drawing.Image
thumbNailImg = fullSizeImg.GetThumbnailImage(imageWidth, imageHeight, dummyCallBack, IntPtr.Zero)
If FilExt = "jpg" Then
thumbNailImg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
ElseIf FilExt = "gif" Then
thumbNailImg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
End If
Else
If FilExt = "jpg" Then
fullSizeImg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg)
ElseIf FilExt = "gif" Then
fullSizeImg.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif)
End If
End If
End Sub
I kan evt. se et eksempel ved at gå ind på www.trustware.dk og så klikke på logoet.
Derefter kan I se det øverste logo ser forkert ud, hvorimod de screenshots der er er gode nok.
