Как конвертировать WicImagingBitmap в Gdi + Bitmap или поток? - PullRequest
2 голосов
/ 08 сентября 2011

Я разработчик .net и использую WindowsAPICodePackage WIC для рендеринга изображений.Я хочу преобразовать WIC ImagingBitmap в растровое изображение gdi + или в MemoryStream, вместо этого используя собственный метод SaveToFile.Есть ли способ?Вот мой код, пожалуйста, помогите:

int width = 256;
int height = 256;

D2DFactory d2DFactory = D2DFactory.CreateFactory(D2DFactoryType.SingleThreaded);
RenderTargetProperties renderTargetProperties = new RenderTargetProperties
{
    PixelFormat = new PixelFormat(Format.B8G8R8A8UNorm, AlphaMode.Premultiplied),
    Usage = RenderTargetUsages.GdiCompatible,
    RenderTargetType = RenderTargetType.Software
};

ImagingFactory wicFactory = ImagingFactory.Create();
ImagingBitmap imagingBitmap = wicFactory.CreateImagingBitmap((uint)width
    , (uint)height, Microsoft.WindowsAPICodePack.DirectX.WindowsImagingComponent.PixelFormats.Pbgra32Bpp, BitmapCreateCacheOption.CacheOnLoad);

RenderTarget renderTarget = d2DFactory.CreateWicBitmapRenderTarget(imagingBitmap, renderTargetProperties);
renderTarget.BeginDraw();

Random r = new Random();
for (int i = 0; i < 10; i++)
{
    renderTarget.DrawLine(new Point2F(r.Next(0, width), r.Next(0, height)), new Point2F(r.Next(0, width), r.Next(0, height))
        , renderTarget.CreateSolidColorBrush(new ColorF(1, 1, 0)), 4);
}
renderTarget.EndDraw();

string imageFilePath = @"c:\wic.png";
imagingBitmap.SaveToFile(wicFactory, ContainerFormats.Png, imageFilePath);

Спасибо,

1 Ответ

1 голос
/ 09 сентября 2011

Вот что я нашел, надеюсь, это поможет.http://www.leadtools.com/help/leadtools/v15/DH/Wpf/TO/Tutorial_Load.htm

...