Compression JPEG avec GDI+

Contenu du snippet

public static class JpegCodec
{
    private static ImageCodecInfo _jpeg = null;
    
    static JpegCodec( ) // constructeur statique.
    {
        try
        {
            foreach( ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders( ) )
                if ( codec.MimeType == "image/jpeg" )
                    _jpeg = codec;
        }
        catch
        {
            // Debug.WriteLine( "Erreur lors de l'énumération des codecs." );
        }
    }

    // L'argument 'quality' doit être compris entre 0 et 100.
    public static void Save( string path, Image image, int quality )
    {
        if ( image == null )
            throw new ArgumentNullException( "image" );
        
        if ( quality < 0 || quality > 100 )
            throw new ArgumentOutOfRangeException( "quality" );

         if ( _jpeg == null )
            throw new InvalidOperationException( "Impossible de trouver un encodeur Jpeg." );

        EncoderParameters encoderParameters = new EncoderParameters( 1 );
        encoderParameters.Param[ 0 ] = new EncoderParameter( Encoder.Quality, ( long )quality );

        // Lance une exception si l'argument 'path' n'est pas valide.
        image.Save( path, _jpeg, encoderParameters );
    }
}


Compatibilité : C# 2.x

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.