2010-09-02 2 views
2

проблема заключается в следующем:Эффективное манипулирование растровое в WPF (C#)

Я получил вынесенное растровое изображение в виде массива байтов (вместе с заголовком битовой карты). Теперь я хочу манипулировать содержимым растрового изображения. Для этого мне нужно обернуть этот массив некоторым классом высокого уровня, скажем BitmapImage. Я хочу избежать копирования массива или его части данных и т. Д. Я хочу просто заставить .NET интерпретировать мой массив байтов как BitmapImage.

Я хочу изменить содержимое, отредактировав некоторые вещи до RenderTargetBitmap, а затем интерпретируйте его биты данных как биты моего изображения. Для рендеринга я должен использовать стандартную пару DrawingContext, DrawingVisual. Таким образом, было бы здорово, если бы я мог РАБОТАТЬ по части данных моего массива байтов и отобразить мое окончательное изображение в этом подмассиве. Тогда мне не нужно было выполнять какое-либо копирование, и производительность была бы великолепной.

Как ускорить расчет и получить потрясающие результаты? :-)

Заранее благодарю вас за ответы!

Приветствия

ответ

2

Я хотел бы использовать Writeablebitmap, манипулируют его в коде, а затем показать его в изображение. В зависимости от контекста, некоторое кэширование может сделать отличную работу.

+0

Yup, я думал о WriteableBitmap, но как визуализировать DrawingVisual для этого, не копируя никаких данных взад и вперед? Я бы хотел избежать копирования по соображениям производительности ... Что бы вы предложили? – Jamie

+0

Насколько я знаю, это невозможно без копирования. Могу ли я спросить, что бы вы хотели достичь? Вы хотите объединить DrawingVisual (векторный график) с изображением? Возможно, вы можете разместить его поверх этого изображения (например, использовать Canvas Zindex), чтобы он выглядел как одно изображение. –

+0

Да, я хочу объединить DrawingVisual с изображением (которое у меня сейчас есть как массив байтов) ... – Jamie

Смежные вопросы