2017-02-03 22 views
0

Моя задача - нарисовать множество простых геометрических фигур, таких как прямоугольники и круги, на большие черно-белые изображения (размером около 4000x6000 пикселей) и сохранить результат для обоих, битмап-файлов и двоичного массива, представляющего каждый пиксель как 1, если рисовать, или 0 в противном случае. Я использовал GDI + (= System.Drawing). Поскольку это, однако, заняло слишком много времени, я начал смотреть на Direct2D. Я быстро научился рисовать в Win32-окне и думал, что могу использовать его, чтобы рисовать в растровое изображение.Direct2D - Рисование прямоугольников и кругов на большие изображения и сохранение на диск

Я узнал, как загрузить изображение и отобразить его здесь: https://msdn.microsoft.com/de-de/library/windows/desktop/ee719658(v=vs.85).aspx Но я не мог найти информацию о том, как создать большой ID2D1Bitmap и визуализировать его.

Как создать цель рендеринга (должен быть ID2D1HwndRenderTarget?), Связанный с таким новым созданным (как?) Большим растровым изображением, и рисовать в нем прямоугольники и круги, а затем сохранить их в файл?

Большое спасибо за показывая мне правильное направление, Jürgen

ответ

0

Если бы я должен был сделать это, я бы свернуть свой собственный код вместо использования GDI или DirectX вызывает. Структура бинарного растрового изображения очень проста (упакованный массив бит), и после того, как вы внедрили функцию для установки одного пикселя, а один - для одиночного прогона (сегмент горизонтальной линии), рисование прямоугольников и кругов происходит легко.

Если вы не чувствуете себя комфортно с битовой упаковкой, вы можете работать с байтовым массивом вместо (один пиксель на каждый байт) и конвертировать все изображение в конце.

Написание растрового изображения в файл также не имеет большого значения, как только вы узнаете об операциях ввода-вывода двоичных файлов (и вы найдете много готовых функций в Интернете).


На самом деле, когда вы знаете спецификации компоновки данных растрового изображения файла, вам не нужно Windows, вообще.

0

для кого-то пытается выяснить, как - создать растровое изображение в Direct2D - привлечь в него, - отобразить его и - сохранить его в файл, я нашел эту статью очень полезным: https://msdn.microsoft.com/en-us/library/windows/desktop/ff973956.aspx Надеясь , это помогает другим так же, а также Jürgen