BitMiracle.LibJpeg.Classic.jpeg_compress_struct.jpeg_quality_scaling C# (CSharp) Method

jpeg_quality_scaling() public static method

Converts a value on the IJG-recommended quality scale to a linear scaling percentage.
public static jpeg_quality_scaling ( int quality ) : int
quality int The IJG-recommended quality scale. Should be 0 (terrible) to 100 (very good).
return int
        public static int jpeg_quality_scaling(int quality)
        {
            /* Safety limit on quality factor.  Convert 0 to 1 to avoid zero divide. */
            if (quality <= 0)
                quality = 1;

            if (quality > 100)
                quality = 100;

            /* The basic table is used as-is (scaling 100) for a quality of 50.
            * Qualities 50..100 are converted to scaling percentage 200 - 2*Q;
            * note that at Q=100 the scaling is 0, which will cause jpeg_add_quant_table
            * to make all the table entries 1 (hence, minimum quantization loss).
            * Qualities 1..50 are converted to scaling percentage 5000/Q.
            */
            if (quality < 50)
                quality = 5000 / quality;
            else
                quality = 200 - quality * 2;

            return quality;
        }