Problema nel salvataggio di una PictureBox

mercoledì 01 marzo 2006 - 17.56

papini.sascha Profilo | Newbie

Ciao Ragazzi vi volevo chiedere una cosa
dovrei salvare una immagine su un file di una picturebox ... ora la funzione è questa

pbSmall.Image.Save(svdImmagine.FileName & "_thumb.jpg", System.Drawing.Imaging.ImageFormat.Jpeg, New EncoderParameter(Encoder.Quality, 100))

il problema sta nel fatto
New EncoderParameter(Encoder.Quality, 100)

come faccio a passarli i parmetri per avere la qualità al 100% ??

Nel dubbio GASSE !!!

GvnnRules Profilo | Senior Member

Prova:

VB.NET
New EncoderParameter(Encoder.Quality, CType(100L, Int32))

C#
new EncoderParameter(Encoder.Quality, 100L)

Peace
Gvnn

http://www.gvnn.it
http://www.sqlwebarchitect.org
http://blogs.dotnethell.it/gvnn/

papini.sascha Profilo | Newbie

hummmm in cosa sbaglio ??

pbSmall.Image.Save(svdImmagine.FileName & "_thumb.jpg", System.Drawing.Imaging.ImageFormat.Jpeg, New EncoderParameter(Encoder.Quality, CType(100L, Int32)))

D:\lavori NET\provaImmagine\frmImmaginePrincipale.vb(417): Risoluzione dell'overload non riuscita perché nessun "Save" accessibile può essere chiamato con questi argomenti:
"Public Sub Save(stream As System.IO.Stream, encoder As System.Drawing.Imaging.ImageCodecInfo, encoderParams As System.Drawing.Imaging.EncoderParameters)": Impossibile convertire il valore di tipo "String" in "System.IO.Stream".
"Public Sub Save(stream As System.IO.Stream, encoder As System.Drawing.Imaging.ImageCodecInfo, encoderParams As System.Drawing.Imaging.EncoderParameters)": Impossibile convertire il valore di tipo "System.Drawing.Imaging.ImageFormat" in "System.Drawing.Imaging.ImageCodecInfo".
"Public Sub Save(stream As System.IO.Stream, encoder As System.Drawing.Imaging.ImageCodecInfo, encoderParams As System.Drawing.Imaging.EncoderParameters)": Impossibile convertire il valore di tipo "System.Drawing.Imaging.EncoderParameter" in "System.Drawing.Imaging.EncoderParameters".
"Public Sub Save(filename As String, encoder As System.Drawing.Imaging.ImageCodecInfo, encoderParams As System.Drawing.Imaging.EncoderParameters)": Impossibile convertire il valore di tipo "System.Drawing.Imaging.ImageFormat" in "System.Drawing.Imaging.ImageCodecInfo".
"Public Sub Save(filename As String, encoder As System.Drawing.Imaging.ImageCodecInfo, encoderParams As System.Drawing.Imaging.EncoderParameters)": Impossibile convertire il valore di tipo "System.Drawing.Imaging.EncoderParameter" in "System.Drawing.Imaging.EncoderParameters".

Nel dubbio GASSE !!!

GvnnRules Profilo | Senior Member

azz ... guarda non sono un esperto, prova a guardare questa pagina di msdn, magari trovi la soluzione

http://msdn2.microsoft.com/en-us/library/system.drawing.imaging.encoder.quality.aspx



Peace
Gvnn

http://www.gvnn.it
http://www.sqlwebarchitect.org
http://blogs.dotnethell.it/gvnn/

papini.sascha Profilo | Newbie

grazie mille !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Visual Basic

Imports System
Imports System.Drawing
Imports System.Drawing.Imaging


Class Example_SetJPEGQuality

Public Shared Sub Main()
Dim myBitmap As Bitmap
Dim myImageCodecInfo As ImageCodecInfo
Dim myEncoder As Encoder
Dim myEncoderParameter As EncoderParameter
Dim myEncoderParameters As EncoderParameters

' Create a Bitmap object based on a BMP file.
myBitmap = New Bitmap("Shapes.bmp")

' Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo = GetEncoderInfo("image/jpeg")

' Create an Encoder object based on the GUID
' for the Quality parameter category.
myEncoder = Encoder.Quality

' Create an EncoderParameters object.
' An EncoderParameters object has an array of EncoderParameter
' objects. In this case, there is only one
' EncoderParameter object in the array.
myEncoderParameters = New EncoderParameters(1)

' Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = New EncoderParameter(myEncoder, CType(25L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters)

' Save the bitmap as a JPEG file with quality level 50.
myEncoderParameter = New EncoderParameter(myEncoder, CType(50L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters)

' Save the bitmap as a JPEG file with quality level 75.
myEncoderParameter = New EncoderParameter(myEncoder, CType(75L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters)

End Sub 'Main

Private Shared Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo
Dim j As Integer
Dim encoders() As ImageCodecInfo
encoders = ImageCodecInfo.GetImageEncoders()

j = 0
While j < encoders.Length
If encoders(j).MimeType = mimeType Then
Return encoders(j)
End If
j += 1
End While
Return Nothing

End Function 'GetEncoderInfo
End Class 'Example_SetJPEGQuality

Nel dubbio GASSE !!!

Luigi3 Profilo | Junior Member

Qualcuno potrebbe postare su x giu' lo stesso codice in c#?

Io ho un problema: una volta disegnata tutta l'immagine, la savlo in jpg. L'immagine sembra buona, ma se provo ad aprirla con Photoshop, ricevo il seguente errore:
".. an unknown or invalid JPEG marker type is found "
Provandolo ad aprire con Paint.net invece si apre e risalvandolo da questo programma tutto torna ok.

Cosa ho mancato?

Ho notato che mettendo la seguente stringa nel codice mi da' errore:
myImageCodecInfo = GetEncoderInfo("image/jpeg");

Perche'?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5