Ejemplo n.º 1
0
        public async void ActionShowImage(string objectIdentifier, string source, bool effectDiffusion, int threshold, IReactPromise <JSValue.Void> promise)
        {
            try
            {
                if (!GetObject(objectIdentifier, out DisplayBuilder nativeObject))
                {
                    promise.Reject(new ReactError());
                    return;
                }

                ImageParameter parameter = await StarIO10ValueConverter.ToDisplayImageParameterAsync(source, effectDiffusion, threshold);

                nativeObject.ActionShowImage(parameter);

                promise.Resolve();
            }
            catch (Exception)
            {
                StarIO10Exception exception = new StarIO10ArgumentException("Invalid source.");
                StarIO10ErrorWrapper.SetObject(exception, out string exceptionIdentifier);
                promise.Reject(new ReactError()
                {
                    Code = exceptionIdentifier, Exception = exception
                });
            }
        }
Ejemplo n.º 2
0
        public override void OnDialogOpened(IDialogParameters parameters)
        {
            base.OnDialogOpened(parameters);

            OriginalImage = parameters?.GetValue <byte[]>(ParameterNames.SelectedImage);
            SelectedImage = new ImageParameter();
        }
        public async Task <IActionResult> Index([FromServices] IImageParameterFixer parameterFixer,
                                                [FromRoute] ImageParameter parameter)
        {
            parameter = parameter.GetFixed(parameterFixer);
            var       relativePath = parameter.GetRelativePath();
            var       physicalPath = Path.GetFullPath(relativePath);
            IFileInfo fileInfo;
            var       contentType = "image/" + parameter.Format;

            if (System.IO.File.Exists(physicalPath))
            {
                fileInfo = _fileProvider.GetFileInfo(relativePath);
                return(File(fileInfo.CreateReadStream(), contentType));
            }

            var physicalFolder = Path.GetDirectoryName(physicalPath);

            if (!Directory.Exists(physicalFolder))
            {
                Directory.CreateDirectory(physicalFolder);
            }

            var imageData = await _fileStore.GetImageData(Guid.Parse(parameter.Id));

            if (imageData == null)
            {
                return(NotFound());
            }
            _imageService.ImageCastAndSaveToFile(imageData.Bytes, parameter.Size, parameter.ImageFormat, physicalPath);
            fileInfo = _fileProvider.GetFileInfo(relativePath);
            return(File(fileInfo.CreateReadStream(), contentType));
        }
 public void DataBind() {
     ImageParameter target = new ImageParameter();
     bool dataBound = false;
     target.DataBinding += new EventHandler(delegate(object sender, EventArgs e) {
         dataBound = true;
     });
     target.DataBind();
     Assert.AreEqual(true, dataBound);
 }
Ejemplo n.º 5
0
        public void DataBind()
        {
            ImageParameter target    = new ImageParameter();
            bool           dataBound = false;

            target.DataBinding += new EventHandler(delegate(object sender, EventArgs e) {
                dataBound = true;
            });
            target.DataBind();
            Assert.AreEqual(true, dataBound);
        }
        public FilePathResult Index(ImageParameter parameter)
        {
            if (parameter == null)
            {
                return(File(Server.MapPath("~/_storage/css/404.png"), "image/png"));
            }
            parameter = parameter.GetFixed(new DefaultImageParameterFixer());
            var physicalPath = Server.MapPath(parameter.GetRelativePath());
            var contentType  = "image/" + parameter.Format;

            lock (string.Intern(physicalPath))
            {
                if (System.IO.File.Exists(physicalPath))
                {
                    Response.AddHeader("ETag", "0");
                    Response.AddHeader("Last-Modified", "Thu, 01 Oct 2015 12:07:58 GMT");
                    Response.AddHeader("Cache-Control", "public");
                    return(File(physicalPath, contentType));
                }
                var physicalFolder = Path.GetDirectoryName(physicalPath);
                IoHelper.CreateDirectoryIfNotExists(physicalFolder);
                var service      = Ioc.Get <IImageService>();
                var originalPath = service.GetOriginalPath(parameter.Guid);
                if (string.IsNullOrEmpty(originalPath))
                {
                    return(null);
                }

                var originalFile = Server.MapPath(originalPath);
                if (!System.IO.File.Exists(originalFile))
                {
                    return(null);
                }
                using (var sysImage = System.Drawing.Image.FromFile(originalFile))
                {
                    if (parameter.ImageFormat == ImageFormat.Gif)
                    {
                        sysImage.Save(physicalPath, ImageFormat.Gif);
                    }
                    else
                    {
                        using (var sizedImage = sysImage.ToSize(parameter.Size.GetSize()))
                        {
                            sizedImage.SaveToFileInQuality(physicalPath, parameter.ImageFormat);
                        }
                    }
                }
            }
            return(File(physicalPath, contentType));
        }
Ejemplo n.º 7
0
 public ImageProcess(ImageIO sourceImage,
                     int targetWidth, int targetHeight,
                     Interpolation interpolation, double bicubicFactor = -0.5)
 {
     _imageParameter = new ImageParameter(sourceImage, null, sourceImage.Path, null);
     sourceImage.LockBits();
     _processOption          = new ProcessOption(Transform.None, interpolation);
     _distortionParameter    = null;
     _warpParameter          = null;
     _faceTransformation     = null;
     _interpolationParameter = new InterpolationParameter(targetWidth, targetHeight, bicubicFactor);
     _processResult          = new ProcessResult(this.InterpolationFunction(), null, null);
     sourceImage.UnlockBits();
 }
        public void OnDataBinding() {
            var param = new ImageParameter() { Name = "name" , Value="value"};
            
            bool dataBound = false;
            param.DataBinding += new EventHandler(delegate(object sender, EventArgs e) {
                var imageParam = sender as ImageParameter;
                Assert.AreEqual("DummyControl", imageParam.BindingContainer.ID);
                dataBound = true;
            });
            gi.Parameters.Add(param);

            gi.CallOnDataBinding();

            Assert.AreEqual(true, dataBound);
        }
Ejemplo n.º 9
0
 public ImageProcess(ImageIO sourceImage, ImageIO faceImage,
                     int targetWidth, int targetHeight,
                     Interpolation interpolation, double bicubicFactor = -0.5)
 {
     _imageParameter = new ImageParameter(sourceImage, faceImage, sourceImage.Path, faceImage.Path);
     sourceImage.LockBits();
     faceImage.LockBits();
     _processOption          = new ProcessOption(Transform.TPS, interpolation);
     _distortionParameter    = null;
     _warpParameter          = null;
     _faceTransformation     = new FaceTransformation(this.ImageParameter.SourcePath, this.ImageParameter.FacePath);
     _interpolationParameter = new InterpolationParameter(targetWidth, targetHeight, bicubicFactor);
     _processResult          = new ProcessResult(this.InterpolationFunction(), this.FaceTransformation.Source_marked, this.FaceTransformation.Face_marked);
     sourceImage.UnlockBits();
     faceImage.UnlockBits();
 }
Ejemplo n.º 10
0
 public ImageProcess(ImageIO sourceImage,
                     double warpFactor, int warpCenter_x, int warpCenter_y,
                     int targetWidth, int targetHeight,
                     Interpolation interpolation, double bicubicFactor = -0.5)
 {
     _stretch        = false;
     _imageParameter = new ImageParameter(sourceImage, null, sourceImage.Path, null);
     sourceImage.LockBits();
     _processOption          = new ProcessOption(Transform.Warp, interpolation);
     _distortionParameter    = null;
     _warpParameter          = new WarpParameter(sourceImage.Width * sourceImage.Height, warpFactor, warpCenter_x, warpCenter_y);
     _faceTransformation     = null;
     _interpolationParameter = new InterpolationParameter(targetWidth, targetHeight, bicubicFactor);
     _processResult          = new ProcessResult(this.InterpolationFunction(), null, null);
     sourceImage.UnlockBits();
 }
Ejemplo n.º 11
0
        public void OnDataBinding()
        {
            var param = new ImageParameter()
            {
                Name = "name", Value = "value"
            };

            bool dataBound = false;

            param.DataBinding += new EventHandler(delegate(object sender, EventArgs e) {
                var imageParam = sender as ImageParameter;
                Assert.AreEqual("DummyControl", imageParam.BindingContainer.ID);
                dataBound = true;
            });
            gi.Parameters.Add(param);

            gi.CallOnDataBinding();

            Assert.AreEqual(true, dataBound);
        }
 /// <summary>
 /// 拷贝的构造函数。
 /// </summary>
 /// <param name="imageParameter">ImageParameter 对象实例。</param>
 /// <exception cref="ArgumentNullException">imageParameter 为空时抛出异常。</exception>
 public ImageParameter(ImageParameter imageParameter)
 {
     if (imageParameter == null) throw new ArgumentNullException("imageParameter", Resources.ArgumentIsNotNull);
     if (imageParameter.Bounds != null)
         this.Bounds = new Rectangle2D(imageParameter.Bounds);
     if (imageParameter.Center != null)
         this.Center = new Point2D(imageParameter.Center);
     if (imageParameter.PrjCoordSys != null)
         this.PrjCoordSys = new PrjCoordSys(imageParameter.PrjCoordSys);
     this.Scale = imageParameter.Scale;
     if (imageParameter.Style != null)
         this.Style = new Style(imageParameter.Style);
     if (imageParameter.Viewer != null)
         this.Viewer = new Rectangle(imageParameter.Viewer);
 }