public virtual void Dispose() { if (WicEncoder is null) { return; } WicEncoder->Release(); WicEncoder = null; ccw.Dispose(); }
public WicImageEncoder(FileFormat format, Stream stm) { var fmt = formatMap.GetValueOrDefault(format, GUID_ContainerFormatPng); var gch = GCHandle.Alloc(stm); var sti = new IStreamImpl(gch); ccw = new SafeComCallable <IStreamImpl>(sti); using var encoder = default(ComPtr <IWICBitmapEncoder>); HRESULT.Check(Wic.Factory->CreateEncoder(&fmt, null, encoder.GetAddressOf())); HRESULT.Check(encoder.Get()->Initialize((IStream *)ccw.DangerousGetHandle(), WICBitmapEncoderCacheOption.WICBitmapEncoderNoCache)); WicEncoder = encoder.Detach(); }
public int WriteThumbnail(ID2D1Image *pImage, IWICBitmapEncoder *pEncoder, [NativeTypeName("const WICImageParameters *")] WICImageParameters *pImageParameters) { return(((delegate * unmanaged <IWICImageEncoder *, ID2D1Image *, IWICBitmapEncoder *, WICImageParameters *, int>)(lpVtbl[5]))((IWICImageEncoder *)Unsafe.AsPointer(ref this), pImage, pEncoder, pImageParameters)); }