コード例 #1
0
ファイル: ImgFilters1Demo.cs プロジェクト: BiDuc/PixelFarm
        public override void Draw(Painter p)
        {
            AggPainter painter = p as AggPainter;

            if (painter == null)
            {
                return;
            }

            painter.Clear(Color.White);

            switch (FilterName)
            {
            case FilterName.Unknown:
                painter.RenderSurface.CustomImgSpanGen = null;
                break;

            case FilterName.NearestNeighbor:
                painter.RenderSurface.CustomImgSpanGen = _imgSpanGenNN;
                break;

            default:
                DrawWeightDistributionGraph(p, _lut.WeightArray);
                painter.RenderSurface.CustomImgSpanGen = _imgSpanGenCustom;
                break;
            }

            VertexProcessing.AffinePlan[] p1 = new VertexProcessing.AffinePlan[]
            {
                VertexProcessing.AffinePlan.Translate(-_imgW / 2.0, -_imgH / 2.0),
                VertexProcessing.AffinePlan.RotateDeg(_rotationDeg),
                VertexProcessing.AffinePlan.Translate(_imgW / 2.0, _imgH / 2.0),
            };

            p.DrawImage(_orgImg, p1);

            if (_thumbnailScaleDown > 0 && _thumbnailScaleDown < 1)
            {
                using (MemBitmap thumbnail = _orgImg.CreateThumbnailWithSuperSamplingTechnique(_thumbnailScaleDown))
                {
                    painter.DrawImage(thumbnail, 400, 300);
                }
            }

            base.Draw(p);
        }