internal static void SaveImage(Image image, Stream stream, ImageFormat imageFormat, int jpegQuality) { SharedUtil.ThrowIfEmpty(image, "image"); SharedUtil.ThrowIfEmpty(stream, "stream"); SharedUtil.ThrowIfEmpty(imageFormat, "imageFormat"); if (imageFormat == ImageFormat.Jpeg) { using (EncoderParameters parameters = new EncoderParameters(1)) { using (EncoderParameter parameter = new EncoderParameter(Encoder.Quality, (long)jpegQuality)) { parameters.Param[0] = parameter; image.Save(stream, JpegCodec, parameters); stream.Flush(); } return; } } using (MemoryStream stream2 = new MemoryStream()) { image.Save(stream2, imageFormat); stream2.Seek(0L, SeekOrigin.Begin); stream2.WriteTo(stream); stream.Flush(); stream2.Flush(); } }
internal DisplayNameAttribute(Type type, string memberName) { this.type = type; if (this.type == null) { throw new ArgumentNullException("type"); } SharedUtil.ThrowIfEmpty(this.memberName = memberName, "memberName"); }
internal static bool CopyStream(Stream source, Stream target, int bufferSize, long sourceSeekOffset, SeekOrigin sourceSeekOrigin, long targetSetLength, long targetSeekOffset, SeekOrigin targetSeekOrigin, Operation <int, bool> shouldCancel) { SharedUtil.ThrowIfEmpty(source, "source"); SharedUtil.ThrowIfEmpty(target, "target"); if (!source.CanRead || !target.CanWrite) { throw new IOException(); } byte[] buffer = new byte[bufferSize = (bufferSize <= 0) ? 0x1000 : bufferSize]; if (((sourceSeekOffset > 0L) || ((sourceSeekOffset == 0L) && (sourceSeekOrigin != SeekOrigin.Current))) && source.CanSeek) { source.Seek(sourceSeekOffset, sourceSeekOrigin); } if (target.CanSeek) { if (targetSetLength > 0L) { target.SetLength(targetSetLength); } target.Seek(targetSeekOffset, targetSeekOrigin); } while (source.Position < source.Length) { long num; if ((num = source.Length - source.Position) < bufferSize) { bufferSize = (int)num; buffer = new byte[bufferSize]; } source.Read(buffer, 0, bufferSize); target.Write(buffer, 0, bufferSize); target.Flush(); if ((shouldCancel != null) && shouldCancel(SharedUtil.Percent(source.Position, source.Length))) { return(false); } } return(true); }
internal static bool CopyStream(Stream source, Stream target, Operation <int, bool> shouldCancel) { SharedUtil.ThrowIfEmpty(source, "source"); return(CopyStream(source, target, 0, 0L, SeekOrigin.Current, source.Length, 0L, SeekOrigin.Begin, shouldCancel)); }