Наследование: MonoBehaviour
Пример #1
0
        static void scaler_start_pass(jpeg_decompress cinfo)
        {
            jpeg_lossless_d_codec losslsd = (jpeg_lossless_d_codec)cinfo.coef;
            scaler scaler = (scaler)losslsd.scaler_private;

            // Downscale by the difference in the input vs. output precision. If the
            // output precision >= input precision, then do not downscale.
            int downscale = BITS_IN_JSAMPLE < cinfo.data_precision?cinfo.data_precision - BITS_IN_JSAMPLE:0;

            scaler.scale_factor = cinfo.Al - downscale;

            // Set scaler functions based on scale_factor (positive = left shift)
            if (scaler.scale_factor > 0)
            {
                losslsd.scaler_scale = simple_upscale;
            }
            else if (scaler.scale_factor < 0)
            {
                scaler.scale_factor  = -scaler.scale_factor;
                losslsd.scaler_scale = simple_downscale;
            }
            else
            {
                losslsd.scaler_scale = noscale;
            }
        }
Пример #2
0
        static void simple_downscale(jpeg_decompress cinfo, int[] diff_buf, byte[] output_buf, uint width)
        {
            jpeg_lossless_d_codec losslsd = (jpeg_lossless_d_codec)cinfo.coef;
            scaler scaler = (scaler)losslsd.scaler_private;

            int scale_factor = scaler.scale_factor;

            for (uint xindex = 0; xindex < width; xindex++)
            {
                output_buf[xindex] = (byte)(diff_buf[xindex] >> scale_factor);
            }
        }
Пример #3
0
        static void jinit_d_scaler(jpeg_decompress cinfo)
        {
            jpeg_lossless_d_codec losslsd = (jpeg_lossless_d_codec)cinfo.coef;
            scaler scaler = null;

            try
            {
                scaler = new scaler();
            }
            catch
            {
                ERREXIT1(cinfo, J_MESSAGE_CODE.JERR_OUT_OF_MEMORY, 4);
            }

            losslsd.scaler_private    = scaler;
            losslsd.scaler_start_pass = scaler_start_pass;
        }
Пример #4
0
		static void jinit_d_scaler(jpeg_decompress cinfo)
		{
			jpeg_lossless_d_codec losslsd=(jpeg_lossless_d_codec)cinfo.coef;
			scaler scaler=null;

			try
			{
				scaler=new scaler();
			}
			catch
			{
				ERREXIT1(cinfo, J_MESSAGE_CODE.JERR_OUT_OF_MEMORY, 4);
			}

			losslsd.scaler_private=scaler;
			losslsd.scaler_start_pass=scaler_start_pass;
		}