예제 #1
0
        public virtual int CreateFastMetadataEncoderFromFrameDecode(
            IWICBitmapFrameDecode pIFrameDecoder,
            out IWICFastMetadataEncoder ppIFastEncoder
            )
        {
            var fp = GetFunctionPointer(25);

            if (m_CreateFastMetadataEncoderFromFrameDecodeFunc == null)
            {
                m_CreateFastMetadataEncoderFromFrameDecodeFunc = (CreateFastMetadataEncoderFromFrameDecodeFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(CreateFastMetadataEncoderFromFrameDecodeFunc));
            }
            ppIFastEncoder = new IWICFastMetadataEncoder();
            return(m_CreateFastMetadataEncoderFromFrameDecodeFunc(m_ptr, pIFrameDecoder != null ? pIFrameDecoder.Ptr : IntPtr.Zero, out ppIFastEncoder.PtrForNew));
        }
예제 #2
0
        public virtual int GetFrame(
            uint index,
            out IWICBitmapFrameDecode ppIBitmapFrame
            )
        {
            var fp = GetFunctionPointer(13);

            if (m_GetFrameFunc == null)
            {
                m_GetFrameFunc = (GetFrameFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(GetFrameFunc));
            }
            ppIBitmapFrame = new IWICBitmapFrameDecode();
            return(m_GetFrameFunc(m_ptr, index, out ppIBitmapFrame.PtrForNew));
        }