/// <inheritdoc /> public Task Save(CompressedBitmapFormat format, float quality, Stream target) { ImageEncoder encoder = null; int qualityPercent = (int)(100 * quality); switch (format) { case CompressedBitmapFormat.Jpeg: encoder = new JpegEncoder(); ((JpegEncoder)encoder).Quality = qualityPercent; break; case CompressedBitmapFormat.Png: encoder = new PngEncoder(); if (qualityPercent == 100) { ((PngEncoder)encoder).Compression = PngCompression.None; } else if (qualityPercent < 10) { ((PngEncoder)encoder).Compression = PngCompression.Level1; } else { ((PngEncoder)encoder).Compression = (PngCompression)(qualityPercent / 10); } break; } encoder.SetResolution(new Tizen.Multimedia.Size((int)Width, (int)Height)); return(encoder.EncodeAsync(Inner.Buffer, target)); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return(Task.Run(() => { #if UIKIT var data = format == CompressedBitmapFormat.Jpeg ? inner.AsJPEG((float)quality) : inner.AsPNG(); data.AsStream().CopyTo(target); #else #if UNIFIED var rect = new CoreGraphics.CGRect(); #else var rect = new RectangleF(); #endif var cgImage = inner.AsCGImage(ref rect, null, null); var imageRep = new NSBitmapImageRep(cgImage); var props = format == CompressedBitmapFormat.Png ? new NSDictionary() : new NSDictionary(new NSNumber(quality), new NSString("NSImageCompressionFactor")); var type = format == CompressedBitmapFormat.Png ? NSBitmapImageFileType.Png : NSBitmapImageFileType.Jpeg; var outData = imageRep.RepresentationUsingTypeProperties(type, props); outData.AsStream().CopyTo(target); #endif })); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return Task.Run(() => { var data = format == CompressedBitmapFormat.Jpeg ? inner.AsJPEG((float)quality) : inner.AsPNG(); data.AsStream().CopyTo(target); }); }
public async Task Save(CompressedBitmapFormat format, float quality, Stream target) { string installedFolderImageSourceUri = _inner.UriSource.OriginalString.Replace("ms-appx:/", string.Empty); var wb = new WriteableBitmap(_inner.PixelWidth, _inner.PixelHeight); var file = await StorageFile.GetFileFromPathAsync(_inner.UriSource.OriginalString); await wb.SetSourceAsync(await file.OpenReadAsync()); await new WriteableBitmapImageBitmap(wb).Save(format, quality, target).ConfigureAwait(false); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return(Task.Run(() => { var formatName = format == CompressedBitmapFormat.Jpeg ? "jpeg" : "png"; var param = format == CompressedBitmapFormat.Jpeg ? "quality" : "compression"; byte[] buffer = inner.SaveToBuffer(formatName, new [] { param }, new [] { quality.ToString() }); using (var ms = new MemoryStream(buffer)) { ms.CopyTo(target); } })); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return Task.Run(() => { var formatName = format == CompressedBitmapFormat.Jpeg ? "jpeg" : "png"; var param = format == CompressedBitmapFormat.Jpeg ? "quality" : "compression"; byte[] buffer = inner.SaveToBuffer(formatName, new [] { param }, new [] { quality.ToString() }); using (var ms = new MemoryStream(buffer)) { ms.CopyTo(target); } }); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return Task.Run(() => { if (format == CompressedBitmapFormat.Jpeg) { var jpgEncoder = GetEncoder(ImageFormat.Jpeg); var encoderParams = new EncoderParameters(1); var encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (int)(quality * 100.0f)); encoderParams.Param[0] = encoderParam; inner.Save(target, jpgEncoder, encoderParams); } else { inner.Save(target, ImageFormat.Png); } }); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) => Task.Run(delegate { if (format != CompressedBitmapFormat.Jpeg) { this.inner.Save(target, ImageFormat.Png); } else { ImageCodecInfo encoder = this.GetEncoder(ImageFormat.Jpeg); EncoderParameters encoderParams = new EncoderParameters(1); EncoderParameter parameter = new EncoderParameter(Encoder.Quality, (long)((int)(quality * 100f))); encoderParams.Param[0] = parameter; this.inner.Save(target, encoder, encoderParams); } });
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return(Task.Run(() => { var encoder = format == CompressedBitmapFormat.Jpeg ? (BitmapEncoder) new JpegBitmapEncoder() { QualityLevel = (int)(quality * 100.0f) } : (BitmapEncoder) new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(inner)); encoder.Save(target); })); }
public async Task Save(CompressedBitmapFormat format, float quality, Stream target) { // NB: Due to WinRT's brain-dead design, we're copying this image // like three times. Let Dreams Soar. var rwTarget = new InMemoryRandomAccessStream(); var fmt = format == CompressedBitmapFormat.Jpeg ? BitmapEncoder.PngEncoderId : BitmapEncoder.JpegEncoderId; var encoder = await BitmapEncoder.CreateAsync(fmt, rwTarget, new[] { new KeyValuePair<string, BitmapTypedValue>("ImageQuality", new BitmapTypedValue(quality, PropertyType.Single)) }); var pixels = new byte[inner.PixelBuffer.Length]; await inner.PixelBuffer.AsStream().ReadAsync(pixels, 0, (int)inner.PixelBuffer.Length); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, (uint)inner.PixelWidth, (uint)inner.PixelHeight, 96, 96, pixels); await encoder.FlushAsync(); await rwTarget.AsStream().CopyToAsync(target); }
public async Task Save(CompressedBitmapFormat format, float quality, Stream target) { // NB: Due to WinRT's brain-dead design, we're copying this image // like three times. Let Dreams Soar. var rwTarget = new InMemoryRandomAccessStream(); var fmt = format == CompressedBitmapFormat.Jpeg ? BitmapEncoder.JpegEncoderId : BitmapEncoder.PngEncoderId; var encoder = await BitmapEncoder.CreateAsync(fmt, rwTarget, new[] { new KeyValuePair <string, BitmapTypedValue>("ImageQuality", new BitmapTypedValue(quality, PropertyType.Single)) }); var pixels = new byte[inner.PixelBuffer.Length]; await inner.PixelBuffer.AsStream().ReadAsync(pixels, 0, (int)inner.PixelBuffer.Length); encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, (uint)inner.PixelWidth, (uint)inner.PixelHeight, 96, 96, pixels); await encoder.FlushAsync(); await rwTarget.AsStream().CopyToAsync(target); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return(Task.Run(() => { if (format == CompressedBitmapFormat.Jpeg) { var jpgEncoder = GetEncoder(ImageFormat.Jpeg); var encoderParams = new EncoderParameters(1); var encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (int)(quality * 100.0f)); encoderParams.Param[0] = encoderParam; inner.Save(target, jpgEncoder, encoderParams); } else { inner.Save(target, ImageFormat.Png); } })); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) => Task.Run(delegate { JpegBitmapEncoder encoder3; if (format != CompressedBitmapFormat.Jpeg) { encoder3 = (JpegBitmapEncoder) new PngBitmapEncoder(); } else { encoder3 = new JpegBitmapEncoder { QualityLevel = (int)(quality * 100f) }; } BitmapEncoder encoder = encoder3; encoder.Frames.Add(BitmapFrame.Create(this.inner)); encoder.Save(target); });
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return(Task.Run(() => { #if SILVERLIGHT if (format == CompressedBitmapFormat.Png) { throw new PlatformNotSupportedException("WP8 can't save PNGs."); } var wb = new WriteableBitmap(inner); wb.SaveJpeg(target, wb.PixelWidth, wb.PixelHeight, 0, (int)(quality * 100.0f)); #else var encoder = format == CompressedBitmapFormat.Jpeg ? (BitmapEncoder) new JpegBitmapEncoder() { QualityLevel = (int)(quality * 100.0f) } : (BitmapEncoder) new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(inner)); encoder.Save(target); #endif })); }
public async Task Save(CompressedBitmapFormat format, float quality, Stream target) { string installedFolderImageSourceUri = inner.UriSource.OriginalString.Replace("ms-appx:/", ""); var wb = new WriteableBitmap(inner.PixelWidth, inner.PixelHeight); var file = await StorageFile.GetFileFromPathAsync(inner.UriSource.OriginalString); await wb.SetSourceAsync(await file.OpenReadAsync()); await (new WriteableBitmapImageBitmap(wb).Save(format, quality, target)); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { throw new NotSupportedException("You can't save resources"); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { var fmt = format == CompressedBitmapFormat.Jpeg ? Bitmap.CompressFormat.Jpeg : Bitmap.CompressFormat.Png; return(Task.Run(() => { inner.Compress(fmt, (int)quality * 100, target); })); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) => this.Apply(x => x.Save(format, quality, target));
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return Task.Run(() => { #if UIKIT var data = format == CompressedBitmapFormat.Jpeg ? inner.AsJPEG((float)quality) : inner.AsPNG(); data.AsStream().CopyTo(target); #else #if UNIFIED var rect = new CoreGraphics.CGRect(); #else var rect = new RectangleF(); #endif var cgImage = inner.AsCGImage(ref rect, null, null); var imageRep = new NSBitmapImageRep(cgImage); var props = format == CompressedBitmapFormat.Png ? new NSDictionary() : new NSDictionary(new NSNumber(quality), new NSString("NSImageCompressionFactor")); var type = format == CompressedBitmapFormat.Png ? NSBitmapImageFileType.Png : NSBitmapImageFileType.Jpeg; var outData = imageRep.RepresentationUsingTypeProperties(type, props); outData.AsStream().CopyTo(target); #endif }); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { return Task.Run(() => { #if SILVERLIGHT if (format == CompressedBitmapFormat.Png) { throw new PlatformNotSupportedException("WP8 can't save PNGs."); } var wb = new WriteableBitmap(inner); wb.SaveJpeg(target, wb.PixelWidth, wb.PixelHeight, 0, (int)(quality * 100.0f)); #else var encoder = format == CompressedBitmapFormat.Jpeg ? (BitmapEncoder)new JpegBitmapEncoder() { QualityLevel = (int)(quality * 100.0f) } : (BitmapEncoder)new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(inner)); encoder.Save(target); #endif }); }
public Task Save(CompressedBitmapFormat format, float quality, Stream target) { var fmt = format == CompressedBitmapFormat.Jpeg ? Bitmap.CompressFormat.Jpeg : Bitmap.CompressFormat.Png; return Task.Run(() => { inner.Compress(fmt, (int)quality * 100, target); }); }