Avatar billede carpediem Nybegynder
21. februar 2003 - 12:59 Der er 1 kommentar og
1 løsning

Transparent image resize

Hejsa
Jeg 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.
Avatar billede midas_dk Nybegynder
25. februar 2003 - 17:16 #1
Så vidt jeg er orienteret har .NET Frameworket og transparens i billeder det ikke så godt sammen endnu. Noget med nogle bugs, har jeg hørt...
Avatar billede carpediem Nybegynder
19. marts 2003 - 00:13 #2
Det ser desværre ikke ud til at kunne lade sig gøre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester