Макет:
Я использую сторонние элементы управления для сканирования документов. У меня есть событие, которое происходит, когда я сканирую изображение (в основном используется для добавления аннотаций к изображению). Событие предоставляет мне только одно свойство с именем .PAhDC. Это свойство является дескриптором контроллера домена, в котором хранится изображение до его записи в файл. Таким образом, я могу вносить изменения в изображение до того, как оно будет записано в файл.
Ожидаемые результаты:
Я хотел бы просто добавить 1/4 дюйма (скажем, 100 пикселей) пробела в самый верх изображения. Если мое исходное изображение имеет размер 200x200 (ШxВ), тогда мое новое окончательное изображение должно быть 200x300.
Вопрос и другие мысли:
Как я могу изменить существующее изображение, зная только его дескриптор DC? Я думал сделать что-то вроде следующего ...
- Создайте новый DC.
- Создайте новое изображение Bitmap на 100 пикселей выше исходного изображения.
- Используйте это новое растровое изображение в новом DC.
- Скопируйте исходное изображение в новое растровое изображение (100 пикселей сверху в качестве начальной точки).
- Затем используйте что-то вроде SelectObject для замены старого растрового изображения в исходном hDC новым, а затем уничтожьте старый растровый объект.
Примечание: я хотел бы делать это как можно чаще с УПРАВЛЯЕМЫМ КОДОМ. Использование SelectObject () было единственным способом, который я мог придумать, но это, конечно, неуправляемый код ...: /