Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti,
ho creato un programma che necessita di salvare un'immagine alla fine di un processo e vorrei farlo senza farle perdere eccessiva qualità e senza raddoppiarne il peso.
Il problema è che con il metodo Save di Image posso scegliere tra una quantità limitata di formati.
Non riesco a trovarne uno che mantenga la qualità senza incrementare eccessivamente lo spazio occupato dal file.
Ora come ora ho scelto di usare PNG ma anche lui non scherza affatto: una foto da 9mb viene incrementata a 19mb, mentre formati come JPEG e GIF fanno diventare l'immagine uno schifo
Qualcuno ha idee migliori?
EDIT (ecco il codice richiesto):
Codice sorgente - presumibilmente VB.NET
''' <summary>Draws the logo on the specified image. The location is oriented by ImageAlignment</summary>
''' <param name="Immy">Image where the logo has to be painted</param>
''' <param name="Logo">Image that has to be painted</param>
''' <param name="Distance">Logo distance from borders</param>
FriendSub WaterMark(ByVal Immy As Image, ByVal Logo As Image, ByVal Distance As Size)
Dim X, Y As Int32
SelectCase LogoAlignment 'set coordinates
Case Alignment.TopLeft
X = Distance.Width
Y = Distance.Height
Case Alignment.TopRight
X = Immy.Width-(Distance.Width+ Logo.Width)
Y = Distance.Height
Case Alignment.BottomLeft
X = Distance.Width
Y = Immy.Height-(Distance.Height+ Logo.Height)
Case Alignment.BottomRight
X = Immy.Width-(Distance.Width+ Logo.Width)
Y = Immy.Height-(Distance.Height+ Logo.Height)
EndSelect
Using Painter As Graphics = Graphics.FromImage(Immy)'paint
credo che lavorando un po con l'oggetto Image o Bitmap puoi riuscire a specificare i parametri di compressione, in questo modo lo adatti alle tue necessità.
Non è il formato png che ti gonfia l'immagine, probabilmente è quello che ci fai tu sopra.
Il formato PNG sarebbe il migliore, perchè applica una compressione lossless e quindi la qualità dell'immagine rimane invariata, mentre con JPEG la compressione è lossy e l'immagine perde qualità.
Ma questo non è possibile :S Io ci disegno sopra un'altra immagine rimpicciolita, tutto qui. - Question - 21/06/11 13:28
quanto sono grandi le due immagini? e in che formato sono? e come salvi l'immagine? - Qwertj - 21/06/11 18:37
Come salvo l'immagine te l'ho scritto sopra, la grandezza può variare ma 20mb li raggiunge anche con disegnata sopra un'immagine 96x96 (la disegno con graphics e interpolazione high quality bicubic) - Question - 22/06/11 16:28