public unsafe Bitmap(Stream stream, bool useIcm) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } using DrawingCom.IStreamWrapper streamWrapper = DrawingCom.GetComWrapper(new GPStream(stream)); IntPtr bitmap = IntPtr.Zero; if (useIcm) { Gdip.CheckStatus(Gdip.GdipCreateBitmapFromStreamICM(streamWrapper.Ptr, &bitmap)); } else { Gdip.CheckStatus(Gdip.GdipCreateBitmapFromStream(streamWrapper.Ptr, &bitmap)); } ValidateImage(bitmap); SetNativeImage(bitmap); EnsureSave(this, null, stream); }
public Bitmap(Stream stream, bool useIcm) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } IntPtr bitmap = IntPtr.Zero; int status; if (useIcm) { status = Gdip.GdipCreateBitmapFromStreamICM(new GPStream(stream), out bitmap); } else { status = Gdip.GdipCreateBitmapFromStream(new GPStream(stream), out bitmap); } Gdip.CheckStatus(status); ValidateImage(bitmap); SetNativeImage(bitmap); EnsureSave(this, null, stream); }
public Bitmap(Type type, string resource) { Stream?stream = type.Module.Assembly.GetManifestResourceStream(type, resource); if (stream == null) { throw new ArgumentException(SR.Format(SR.ResourceNotFound, type, resource)); } IntPtr bitmap = IntPtr.Zero; int status = Gdip.GdipCreateBitmapFromStream(new GPStream(stream), out bitmap); Gdip.CheckStatus(status); ValidateImage(bitmap); SetNativeImage(bitmap); EnsureSave(this, null, stream); }