0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 2
1

Как изменить размер TImage под текущий размер Picture ?

14.12.2017, 19:26. Показов 4572. Ответов 2
Метки нет (Все метки)

Доброго времени суток! Есть задача (Delphi 7).
В TImage загружается Picture с условиями:
Delphi
1
2
3
Center := True;
Proportional := True;
Stretch := True;
Во время работы приложения размеры Timage изменяются. Как найти изменённые размеры изображения (т.е. текущие) и установить исходя из них размеры самого Timage ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2017, 19:26
Ответы с готовыми решениями:

Как подогнать TImage под размер изображения?
Доброе время суток, форумчане! Когда я кодил на Delphi, у компонента TImage была процедура, которая...

Автоподгонка размеров TImage под размер изображения
Здравствуйте. Можно ли сделать так, чтобы при изменении картинки в Image(по нажатию кнопки) ширина...

Как изменить размер изображения под мобильные устройства
Мне нужно в статье между абзацами изменить размер изображения от 320 до 980 включно поставить...

Как узнать текущий размер массива
Доброго времени суток. Учебник Сергея Бобровского: Программирование на языке QBasiq. Страница 89....

2
Эксперт Pascal/Delphi
4748 / 2725 / 843
Регистрация: 04.10.2012
Сообщений: 9,954
14.12.2017, 21:11 2
Цитата Сообщение от Reprisal Посмотреть сообщение
В TImage загружается Picture
Изображение в формате JPEG?


Небольшой пример
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
uses JPEG;...; //подключаем модуль
//...
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
jpg:TJPEGImage; //объект для работы с изображением
begin
if not OpenPictureDialog1.Execute then Exit;
jpg :=TJPEGImage.Create; // создаем объект
jpg.LoadFromFile(OpenPictureDialog1.FileName);//через диалог выбора изображения, загружаем в него картинку
//размеры TImage выставляем  в соответствии с изображением
  With Image1 do
  begin
  Width :=jpg.Width; //ширина
  Height :=jpg.Height; //высота
  Picture.Assign(jpg);//выводим изображение
  end;
FreeAndNil(jpg); //уничтожаем объект
end;
 
end.
0
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 2
16.12.2017, 01:10  [ТС] 3
Цитата Сообщение от droider Посмотреть сообщение
Небольшой пример
Формат может меняться (здесь это роли не играет), трудность в другом. Даже исходя из вашего примера, в новые переменные под Width и Height будут загружены РЕАЛЬНЫЕ размеры изображения. А они и без махинаций с повторной загрузкой хранятся в Image1.Picture.Height и Image1.Picture.Width (как пример) соответственно.

Мне же требуется получить новые размеры изображения, которые расчитались Proportional и создались на этом основании самим TImage.

Приведу пример:
Оригинальные размеры изображения и самого TImage - 1920х1680. Во время работы приложения пользователь изменил размеры Timage до 500х500. А так как в TImage включены Proportional, Center и Stretch и новые размеры Timage перестали быть широкоформатным (стал квадратным), то в Timage появилась "пустота" сверху и снизу Picture.
Вопрос и заключается в том, как получить размеры изображения, которое было перерисовано Timage и вписано в новые рамки.

Задача в том, чтобы на примере Autosize подогнать Timage к размерам Picture, но НЕ к истинным как делает autosize, а к новым (визуальным) которые получаются при изменении Timage. В общем нужно убирать эту "пустоту".

Добавлено через 7 минут
_______
P.S. - В самой среде (Delphi) перерисовка под новые размеры через Proportional происходит, насколько я понял сравнением соотношений новых и старых размеров Timage, а после расчёт свободного места под новые размеры и создания "пустого" пространства. Но вытащить часть функции оттуда не получается, т.к. там слишком много других переменных связанных и я просто не могу понять, где и как там это происходит :-). По этому и прошу примера, конкретного расчёта новых размеров.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 01:10

Можно ли подогнать размер браузера под размер фонового изображения
Здравствуйте! Подскажите как сделать, чтоб фоновое изображение подходило по ширине к ширине окна...

Автоматически изменять размер объектов Image под размер формы
Как сделать чтобы после запуска программы в C++ Builder можно было изменить размер формы, и размер...

Изменять размер панели под размер причаливаемых окон
Имеется панель, которая выравнена относительно главного окна как alLeft. На панель причаливаются и...

Размер stage, под размер экрана устройства, возможно?
Как указать размер stage, чтобы оно было равно размеру экрана пользователя? :)

MediaPlayer: подстроить размер видео под размер панели
Привет всем, у меня возникла парочка вопросов по настройке компонента MediaPlayer: Во первых как...

Как узнать текущий размер копируемого файла?
Здраствуйте! Как узнать текущий размер копируемого файла? У HTML-их нашел, а как у других не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.