2010-02-15 13 views
7
<Extension()> _ 
Public Sub Save(ByVal b As Bitmap, ByVal FileName As String, ByVal Compression As Long, ByVal MimeType As String) 
    Dim Params As EncoderParameters = New EncoderParameters(2) 
    Dim CodecInfo As ImageCodecInfo = GetEncoderInfo(MimeType) 

    Params.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderProgressive) 
    Params.Param(1) = New EncoderParameter(Encoder.Quality, Compression) 

    b.Save(FileName, CodecInfo, Params) 
End Sub 

Esto no funciona. No se guarda como progresivo. ¿Cómo puedo hacer esto y tal vez también especificar el número de pases?Guardar JPG en formato progresivo

Respuesta

5

Por lo que yo sé, no es compatible. He tratado de código sugiere here y here y llegó a este código C#:

using (Image source = Image.FromFile(@"D:\temp\test2.jpg")) { 

    ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders().First(c => c.MimeType == "image/jpeg"); 

    EncoderParameters parameters = new EncoderParameters(3); 
    parameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L); 
    parameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.ScanMethod, (int)EncoderValue.ScanMethodInterlaced); 
    parameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod, (int)EncoderValue.RenderProgressive); 

    source.Save(@"D:\temp\saved.jpg", codec, parameters); 
} 

ajuste tanto en modo entrelazado y progresivo, que todavía guarda una línea de base normal JPEG. Intenté cualquier combinación de configuración y sus configuraciones alternativas (sin entrelazado y no progresivo), y no he visto ninguna diferencia en el archivo de imagen resultante.

No he encontrado ninguna respuesta de nadie que diga que han logrado guardar un JPEG progresivo en .NET.

Los valores de los parámetros ScanMethodInterlaced y RenderProgressive se describen solo como "No utilizado en GDI + versión 1.0". en the documentation.

+5

@diamandiev ¿Por qué esta marca como una respuesta? Esto no da ninguna respuesta sobre cómo guardar en formato progresivo, solo que dice que no se puede. Puede ser bastante engañoso para los lectores. –

+0

@Guffa do nueva versión de GDI + admite progresivo jpeg. si es así, de qué versión es compatible. –

+0

@ArjunVachhani: No he encontrado nada que sugiera que se ha agregado. – Guffa

Cuestiones relacionadas