コード例 #1
0
        protected override bool IsReflexive(PropertyBasedSaveConfigToken token)
        {
            PngBitDepthUIChoices bitDepth = (PngBitDepthUIChoices)token.GetProperty <StaticListChoiceProperty>(PropertyNames.BitDepth).Value;

            // Only 32-bit is reflexive
            return(bitDepth == PngBitDepthUIChoices.Bpp32);
        }
コード例 #2
0
        internal override Set <SavableBitDepths> CreateAllowedBitDepthListFromToken(PropertyBasedSaveConfigToken token)
        {
            PngBitDepthUIChoices bitDepthFromToken = (PngBitDepthUIChoices)token.GetProperty <StaticListChoiceProperty>(PropertyNames.BitDepth).Value;

            Set <SavableBitDepths> bitDepths = new Set <SavableBitDepths>();

            switch (bitDepthFromToken)
            {
            case PngBitDepthUIChoices.AutoDetect:
                bitDepths.AddRange(SavableBitDepths.Rgb24, SavableBitDepths.Rgb8, SavableBitDepths.Rgba32, SavableBitDepths.Rgba8);
                break;

            case PngBitDepthUIChoices.Bpp24:
                bitDepths.AddRange(SavableBitDepths.Rgb24);
                break;

            case PngBitDepthUIChoices.Bpp32:
                bitDepths.AddRange(SavableBitDepths.Rgba32);
                break;

            case PngBitDepthUIChoices.Bpp8:
                bitDepths.AddRange(SavableBitDepths.Rgb8, SavableBitDepths.Rgba8);
                break;

            default:
                throw new InvalidEnumArgumentException("bitDepthFromToken", (int)bitDepthFromToken, typeof(PngBitDepthUIChoices));
            }

            return(bitDepths);
        }
コード例 #3
0
        protected override void OnSaveT(Document input, Stream output, PropertyBasedSaveConfigToken token, Surface scratchSurface, ProgressEventHandler progressCallback)
        {
            int quality = token.GetProperty <Int32Property>(PropertyNames.Quality).Value;

            ImageCodecInfo    icf   = GdiPlusFileType.GetImageCodecInfo(ImageFormat.Jpeg);
            EncoderParameters parms = new EncoderParameters(1);
            EncoderParameter  parm  = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);

            parms.Param[0] = parm;

            scratchSurface.Clear(ColorBgra.White);

            using (RenderArgs ra = new RenderArgs(scratchSurface))
            {
                input.Render(ra, false);
            }

            using (Bitmap bitmap = scratchSurface.CreateAliasedBitmap())
            {
                GdiPlusFileType.LoadProperties(bitmap, input);
                bitmap.Save(output, icf, parms);
            }
        }
コード例 #4
0
        internal override int GetDitherLevelFromToken(PropertyBasedSaveConfigToken token)
        {
            int ditherLevel = token.GetProperty <Int32Property>(PropertyNames.DitherLevel).Value;

            return(ditherLevel);
        }
コード例 #5
0
        internal override int GetThresholdFromToken(PropertyBasedSaveConfigToken token)
        {
            int threshold = token.GetProperty <Int32Property>(PropertyNames.Threshold).Value;

            return(threshold);
        }