Проблема масштабирования изображений с GDIPLUS :: Graphics :: DrawImage Когда дисплей DPI влияет на печать на Windows HDC++

Программы на C++. Форум разработчиков
Anonymous
Проблема масштабирования изображений с GDIPLUS :: Graphics :: DrawImage Когда дисплей DPI влияет на печать на Windows HD

Сообщение Anonymous »

Я сталкиваюсь с проблемой во время печати изображений с использованием Gdiplus :: Graphics :: DrawMage на HDC Windows, созданном из драйвера «Microsoft Print to PDF». Основная проблема состоит в том, что на выходные настройки принтера влияют настройки масштабирования DPI дисплея. Однако, когда пользователь изменяет дисплей DPI на 120 (размер текста 125%) или другие нестандартные значения, изображения неверно масштабируются. Например, исходное изображение 100x100 пикселей приводит к тому, что на странице печатается только около 80x80 пикселей, как если бы GDI+ неправильно применяет масштабирование дисплея к выходу печати. Для JPEGS я обнаружил, что обновление данных ESIF для установления значения DPI (72, 96, 120 и т. Д.) Решает проблему, позволяя правильно печатать изображение даже с установленным DPI DPI на 120%. However, this trick doesn't work for PNGs since they lack DPI metadata.
Here’s what I’ve tried so far:
  • Calling Gdiplus::Graphics::SetPageScale
  • Using Gdiplus::Graphics::ResetTransform
Ни один из них не решил проблему. Похоже, что GDI+ применяет коэффициент масштабирования дисплея к изображению во время процесса печати, чего не должно произойти. Любые обходные пути или исправления, особенно для файлов PNG, будут очень оценены!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -affects-p

Вернуться в «C++»