Проблема сокращения с помощью StretchBlt () - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть некоторый код, который рисует мои собственные прямоугольные кнопки на основе исходного растрового изображения.

Большую часть времени кнопки назначения больше, чем мое исходное растровое изображение, и StretchBlt работает отлично. Однако, когда пункт назначения меньше исходного изображения, StretchBlt отказывается заполнять всю область назначения.

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

Здесь ссылка с исходным изображением вверху и пунктом назначения внизу:

текст ссылки Обратите внимание, я на самом деле сжимаю части исходного изображения в место назначения. Я не уменьшаю изображение целиком. Так, например, я копирую размер углов для размера с помощью BitBlt (), а затем растягиваю (сдавливаю) горизонтальные данные пикселей между углами из исходного изображения в целевой DC.

Нет ошибки в моих исходных и конечных координатах. Если я перейду с SRCCOPY на WHITENESS, вся область будет заполнена белым, как и следовало ожидать. Там нет серой полосы, где пиксели не скопированы, как вы видите на изображении Broken.bmp выше.

Кто-нибудь имел эту проблему раньше, и если да, может кто-нибудь предложить решение?

Приветствия

1 Ответ

0 голосов
/ 04 декабря 2009

Я решил проблему. В StretchBlt () нет ничего плохого. Проблема заключалась в том, что растровое изображение, которое я создал и связал с моими рабочими контроллерами домена, было слишком маленьким для размещения изображения, поэтому оно усекало его. К сожалению.

...