Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

resize image

Îåêßíçóå áðü ôï ìÝëïò xakou. Τελευταία δημοσίευση από το μέλος xakou στις 01-03-2009, 23:17. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  28-02-2009, 12:56 48791

    resize image

    Καλημέρα,

     

    πως μπορώ να κάνω resize τις εικόνες (jpg) που ανεβάζω με τον παρακάτω κώδικα σε διαστάσεις 640*480;

     

    'FIND ID

    Dim strSQLCommand As String = "SELECT id FROM TableData WHERE ..............................

    Dim command As New SqlCommand(strSQLCommand, DBConn)

    Dim returnvalue As String = CType(command.ExecuteScalar(), String)

    'RENAME AND WRITE TO SERVER

    Dim uploadFolder As String = Request.PhysicalApplicationPath & "upload\"

    Dim extension As String = Path.GetExtension(FileUpload2.PostedFile.FileName)

    FileUpload2.SaveAs((uploadFolder & returnvalue) + extension)

    Εδώ θα ήθελα να βάλω τον κώδια για να γίνει το resize των εικονών

     

     

     

  •  28-02-2009, 14:21 48793 σε απάντηση της 48791

    Απ: resize image

    φίλε μου για δες εδώ.

    είναι ακριβώς αυτό που θες.

    έχει εκεί μια function Που μπορείς να την καλείς και να κάνει resize τα Images

    http://www.scribd.com/doc/7598768/Resize-an-Image-Using-ASP

     


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  01-03-2009, 13:13 48799 σε απάντηση της 48793

    Απ: resize image

    Η λύση που προτάθηκε είναι σωστή δύο σημεία όμως χρήζουν προσοχής:
    • Η λύση αυτή χρησιμοποιεί gdi για το resize των εικόνων που σημαίνει ότι χρειάζεσαι ιδιαίτερη προσοχή στο de-allocation των resources που χρησιμοποιείς (θα πρέπει να τα κάνεις despose όταν τελειώσεις)
    • Η λύση χρησιμοποιεί HighQualityBilinear interpolation που σημαίνει ότι θα έχεις μια καθυστέρηση κατα το resizing.
    Στη θέση σου θα δοκίμαζα και τη μέθοδο GetThumbnailImage http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx να δω αν μου κάνει πριν πάω στη προηγούμενη λύση.

    MSc Konstantinos Pantos
    MCP Software Engineer
    http://blog.pantos.name
    http://kostas.pantos.name
  •  01-03-2009, 20:34 48802 σε απάντηση της 48799

    Απ: resize image

    spantos:
    Η λύση που προτάθηκε είναι σωστή δύο σημεία όμως χρήζουν προσοχής:
    • Η λύση αυτή χρησιμοποιεί gdi για το resize των εικόνων που σημαίνει ότι χρειάζεσαι ιδιαίτερη προσοχή στο de-allocation των resources που χρησιμοποιείς (θα πρέπει να τα κάνεις despose όταν τελειώσεις)
    • Η λύση χρησιμοποιεί HighQualityBilinear interpolation που σημαίνει ότι θα έχεις μια καθυστέρηση κατα το resizing.

    Στη θέση σου θα δοκίμαζα και τη μέθοδο GetThumbnailImage http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx να δω αν μου κάνει πριν πάω στη προηγούμενη λύση.

    δηλαδή; δεν κατάλαβα τί κάνουν αυτά....

     

  •  01-03-2009, 22:07 48803 σε απάντηση της 48802

    Απ: resize image

    επίσης με τον παρακάτω τρόπο:

    '==================Copy following Function for resizing image====================

    Function ResizeImage(ByVal streamImage As Stream, ByVal maxWidth As Int32, ByVal maxHeight As Int32) As Bitmap

    Dim originalImage As New Bitmap(streamImage)

    Dim newWidth As Int32 = originalImage.Width

    Dim newHeight As Int32 = originalImage.Height

    Dim aspectRatio As Double = Double.Parse(originalImage.Width) / Double.Parse(originalImage.Height)

    If (aspectRatio <= 1 And originalImage.Width > maxWidth) Then

    newWidth = maxWidth

    newHeight = CInt(Math.Round(newWidth / aspectRatio))

    Else

    If (aspectRatio > 1 And originalImage.Height > maxHeight) Then

    newHeight = maxHeight

    newWidth = CInt(Math.Round(newHeight * aspectRatio))

    End If

    End If

    Dim newImage As New Bitmap(originalImage, newWidth, newHeight)

    Dim g As Graphics = Graphics.FromImage(newImage)

    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear

    g.DrawImage(originalImage, 0, 0, newImage.Width, newImage.Height)

    originalImage.Dispose()

    Return newImage

    End Function

    '======================================

     

    και μετά :

    Dim extension As String = Path.GetExtension(FileUpload1.PostedFile.FileName)

    Dim filepreview As Image = (ResizeImage(FileUpload1.PostedFile.InputStream, 640, 480))

    filepreview.Save((uploadFolder & returnvalue & "-1") + extension)

    filepreview.Dispose()

     

     

    μου σώζει τις εικόνες σαν PNG

    Εγώ θα ήθελα σαν JPG και με δυνατότητα να παίζω με την συμπίεση (ποιόητα) της εικόνας.

     

    Καμιά βοήθεια;

     

     

  •  01-03-2009, 23:17 48804 σε απάντηση της 48803

    Απ: resize image

     

    τελικά για να σώζει σαν jpg έπρεπε να γραφεί έτσι :

    filepreview.Save(uploadFolder & returnvalue & "-1" + extension, System.Drawing.Imaging.ImageFormat.Jpeg)

     

     

    Αυτά τί ορίζουν :

    Dim g As Graphics = Graphics.FromImage(newImage)

    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear

    g.DrawImage(originalImage, 0, 0, newImage.Width, newImage.Height)

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems