Example #1
0
        public Task <IDecodedImage <PImage> > DecodeAsync(Stream stream, string path, ImageSource source, ImageInformation imageInformation, TaskParameter parameters)
        {
            if (_decoder == null)
            {
                _decoder = new WebPCodec();
            }

            var result = new DecodedImage <PImage>();

            result.Image = _decoder.Decode(stream);

            var downsampleWidth  = parameters.DownSampleSize?.Item1 ?? 0;
            var downsampleHeight = parameters.DownSampleSize?.Item2 ?? 0;

            // TODO allowUpscale
            // bool allowUpscale = parameters.AllowUpscale ?? Configuration.AllowUpscale;

            if (parameters.DownSampleUseDipUnits)
            {
                downsampleWidth  = downsampleWidth.DpToPixels();
                downsampleHeight = downsampleHeight.DpToPixels();
            }

            if (downsampleWidth != 0 || downsampleHeight != 0)
            {
                var interpolationMode = parameters.DownSampleInterpolationMode == InterpolationMode.Default ? Configuration.DownsampleInterpolationMode : parameters.DownSampleInterpolationMode;
                var old = result.Image;
                result.Image = old.ResizeUIImage(downsampleWidth, downsampleHeight, interpolationMode);
                old.TryDispose();
            }

            return(Task.FromResult <IDecodedImage <PImage> >(result));
        }
        private async void LoadImage()
        {
            var decoder    = new WebP.Mac.WebPCodec();
            var httpClient = new HttpClient();

            using (var stream = await httpClient.GetStreamAsync("http://www.gstatic.com/webp/gallery/1.webp").ConfigureAwait(false))
            {
                var image = decoder.Decode(stream);
                InvokeOnMainThread(() =>
                {
                    var imageView = new NSImageView(new CGRect(0, 0, View.Bounds.Width, View.Bounds.Height));
                    View.AddSubview(imageView);
                    imageView.Image = image;
                });
            }
        }
Example #3
0
        private async void LoadImage()
        {
            var decoder    = new WebP.Mac.WebPCodec();
            var httpClient = new HttpClient();

            using (var stream = await httpClient.GetStreamAsync("https://res.cloudinary.com/demo/image/upload/w_300/sample.webp").ConfigureAwait(false))
            {
                var image = decoder.Decode(stream);
                InvokeOnMainThread(() =>
                {
                    var imageView = new NSImageView(new CGRect(0, 0, View.Bounds.Width, View.Bounds.Height));
                    View.AddSubview(imageView);
                    imageView.Image = image;
                });
            }
        }