SuchitraAB Ответов: 2

Как нарисовать исходное изображение с его исходной высотой и шириной без привязки ширины и высоты на экране с помощью графики drawimage в C++?


Я могу показать изображение с помощью Draw Image (), но на всех сайтах Microsoft они имеют размер прямоугольника.Из-за этого я могу показать только верхнюю часть изображения. Я хочу показать полное изображение, не меняя его высоту или ширину.Это все, что я пробовал, но не получилось.Показывается только верхняя часть изображения:
picture = Image:: From File ("изображение 9.jpeg");

е-и GT;графика&ГТ;рисовать изображения(рисунок,0,0); //показывает только верхнюю часть картинки

Я пробовал даже это:
е-и GT;графика&ГТ;рисовать изображения ("новый образ", Х, Y, ширина, высота );

Я также попробовал использовать рисование ректагля:
Р д = р(100,25,450,150);
Р С = Р(30,30,150,150);*/
Графика `введите код здесь'Unit единиц = графикой единица::пиксель;
e - & gt;Graphics- & gt;DrawImage(picture, d, s, units);

Но я хочу показать полное изображение, а не только верхнюю часть изображения?

Что я уже пробовал:

Я пробовал даже это:
е-и GT;графика&ГТ;рисовать изображения ("новый образ", Х, Y, ширина, высота );

Я также попробовал использовать рисование ректагля:
Р д = р(100,25,450,150);
Р С = Р(30,30,150,150);*/
Графика `введите код здесь'Unit единиц = графикой единица::пиксель;
e - & gt;Graphics- & gt;DrawImage(picture, d, s, units);

Я вызываю это из моего обработчика tooltip Draw_event, с помощью которого я хочу установить фон изображения для моего элемента управления toolTip on button.
Но я хочу показать полное изображение, а не только верхнюю часть изображения?

2 Ответов

Рейтинг:
2

Jochen Arndt

Это невозможно, если ваш экран (или окно) недостаточно велик, чтобы показать полное изображение в его первоначальном размере.

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

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

[РЕДАКТИРОВАТЬ]
Я забыл еще один вариант:
При загрузке изображения из файла отредактируйте и измените его размер до нужного размера с помощью приложения редактора изображений.
[/РЕДАКТИРОВАТЬ]


SuchitraAB

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

Jochen Arndt

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

Еще один совет:
Если вы собираетесь Загружать элементы графического интерфейса, такие как фоны, из графических файлов, вы не должны использовать изображения JPEG. Вместо этого используйте BMP или PNG.

Рейтинг:
2

KarstenK

Наиболее распространенный сценарий заключается в том, что вы изменяете размер изображения после загрузки, чтобы оно поместилось в область рисования. Масштабируйте обе оси с наименьшим коэффициентом, чтобы точно определить соотношение сторон. Другой наиболее часто используемый сценарий заключается в том, что вы используете элемент управления, который прокручивается и показывает только части.

Совет: добавьте кнопку (или событие двойного щелчка), чтобы показать изображение в полном размере в новом окне.