Пример #1
0
        public ImageRenderData RenderEffect(Bitmap rawPhoto, ComicEffectType effectType, Dictionary <string, object> parameterValues)
        {
            // Resize
            rawPhoto = this.ResizeToMax(rawPhoto);

            // Convert bitmap to color
            if (rawPhoto.PixelFormat != PixelFormat.Format24bppRgb)
            {
                rawPhoto = rawPhoto.ConvertFormat(PixelFormat.Format24bppRgb);
            }

            // Convert
            IComicRender renderEffect = this.GetRenderEffect(effectType);

            renderEffect.SetRenderParameterValues(parameterValues);
            Bitmap renderPhoto = renderEffect.Render(rawPhoto);

            // Read rendered photo into memory
            MemoryStream renderStream = new MemoryStream();

            renderPhoto.Save(renderStream, ImageFormat.Jpeg);
            renderStream.Seek(0, SeekOrigin.Begin);
            byte[] renderBuffer = new byte[renderStream.Length];
            renderStream.Read(renderBuffer, 0, renderBuffer.Length);

            // Read raw photo into memory
            MemoryStream rawStream = new MemoryStream();

            rawPhoto.Save(rawStream, ImageFormat.Jpeg);
            rawStream.Seek(0, SeekOrigin.Begin);
            byte[] rawBuffer = new byte[rawStream.Length];
            rawStream.Read(rawBuffer, 0, rawBuffer.Length);

            return(new ImageRenderData(rawStream, renderStream));
        }
Пример #2
0
        public List <RenderParameter> GetRenderParameters(ComicEffectType effect)
        {
            IComicRender renderEffect = this.GetRenderEffect(effect);

            return(renderEffect.GetRenderParameters());
        }