Avatar billede aspnet Nybegynder
20. april 2006 - 13:43 Der er 7 kommentarer og
1 løsning

Kropning af billedet

Jeg skal have kroppet 200x50 pixels på midten af et givent billede. Den kropper billedet men ikke helt korrekt.
Hvad gør jeg forkert her?

ASP.NET 2.0

Function cropImage()
    Dim filepath As String       
    Dim startX As Integer
    Dim startY As Integer

    filepath = "C:\test.jpg"
    Dim img As Image = Image.FromFile(filepath)
    Dim imgFormat As Imaging.ImageFormat = img.RawFormat
    Dim bmp As Bitmap = New Bitmap(200, 50)
    startX = (img.Width - 200) / 2
    startY = (img.Height - 50) / 2

    Dim g As Graphics = Graphics.FromImage(bmp)
    g.DrawImage(img, 0, 0, New Rectangle(startX, startY, 230, 40), GraphicsUnit.Pixel)
    img.Dispose()
    bmp.Save(filepath & "thumb_image.jpg", imgFormat)
    bmp.Dispose()
    g.Dispose()       
End Function
Avatar billede aspnet Nybegynder
20. april 2006 - 13:45 #1
Der er lidt fejl i min postede kode. Her er den rettet version...
Hvad gør jeg forkert siden den ikke kropper rigtigt?


Function cropImage()
    Dim filepath As String       
    Dim startX As Integer
    Dim startY As Integer

    filepath = "C:\test.jpg"
    Dim img As Image = Image.FromFile(filepath)
    Dim imgFormat As Imaging.ImageFormat = img.RawFormat
    Dim bmp As Bitmap = New Bitmap(200, 50)
    startX = (img.Width - 200) / 2
    startY = (img.Height - 50) / 2

    Dim g As Graphics = Graphics.FromImage(bmp)
    g.DrawImage(img, 0, 0, New Rectangle(startX, startY, 200, 50), GraphicsUnit.Pixel)
    img.Dispose()
    bmp.Save("C:\thumb_image.jpg", imgFormat)
    bmp.Dispose()
    g.Dispose()       
End Function
Avatar billede thesurfer Nybegynder
20. april 2006 - 13:46 #2
Måske?:

    startX = (img.Width / 2 - 200 / 2)
    startY = (img.Height / 2 - 50 / 2)

/theSurfer
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:01 #3
Hvis det er korrekt, kan du bruge følgende:


Function cropImage()
    Dim filepath As String       
    Dim startX As Integer
    Dim startY As Integer

    ' --- nye variabler der tages ibrug:
    Dim bredde As Integer
    Dim hojde As Integer
    bredde = 200
    hojde = 50

    filepath = "C:\test.jpg"
    Dim img As Image = Image.FromFile(filepath)
    Dim imgFormat As Imaging.ImageFormat = img.RawFormat
    Dim bmp As Bitmap = New Bitmap(bredde, hojde)
    startX = (img.Width / 2 - bredde / 2)
    startY = (img.Height / 2 - hojde / 2)

    Dim g As Graphics = Graphics.FromImage(bmp)
    g.DrawImage(img, 0, 0, New Rectangle(startX, startY, bredde, hojde), GraphicsUnit.Pixel)
    img.Dispose()
    bmp.Save("C:\thumb_image.jpg", imgFormat)
    bmp.Dispose()
    g.Dispose()       
End Function

/theSurfer
Avatar billede thesurfer Nybegynder
20. april 2006 - 14:20 #4
Smider lige et svar, hvis det kan bruges (skal nemlig smutte på arbejde nu)..

/theSurfer
Avatar billede aspnet Nybegynder
20. april 2006 - 14:51 #5
Tak for hjælpen.

Men kvaliteten af thumnailen er ikke helt godt. Hvordan kan jeg lave bedre kvalitet?
Avatar billede thesurfer Nybegynder
20. april 2006 - 23:22 #6
Jeg har desværre ingen erfaring med det, så jeg kan ikke fortælle dig hvordan.

/theSurfer
Avatar billede simm Nybegynder
21. april 2006 - 13:37 #7
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
Avatar billede simm Nybegynder
21. april 2006 - 13:38 #8
jeg kan ikke lige huske hvilken der gør hvad .. men det står på MSDN
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