Что нового

Вывод графики с ограничением по ширине и сохранением пропорций

mv6677

Новичок
Сообщения
105
Репутация
0
Добрый вечер.
Хотел бы задать вопрос по поводу графического интерфейса.

Есть скрипт, который выводит фотографию - не в просмотрщике, а такой какая она есть - с определенными размерами - на экран:
Код:
SplashImageOn('', @ScriptDir & '\test.jpg', 800, 600, -1, -1, 1)
Sleep(3000) ;~ Показываем на 3 секунды
SplashOff()

В этом скрипте жестко заданы ширина и высота картинки.

Подскажите - как выводить фотографию не с заданной шириной и высотой, а только с ограничением по ширине - выводя фото с сохранением пропорций ?

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

Вложения

  • test.jpg
    test.jpg
    15.1 КБ · Просмотры: 3
  • 1.au3
    138 байт · Просмотры: 2
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
ra4o , это вообще не то.

Мне не надо менять исходный файл картинки, а только - ее отображение на экране (жестко установленная ширина, равная 400. А высота может быть любой - лишь бы пропорции соблюдались).
И потом - в той ссылке, которую вы привели - пропорции-то как раз не соблюдаются.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
в той ссылке, которую вы привели - пропорции-то как раз не соблюдаются
Вы не всю тему читали
Вот, просто слепил в кучу два скрипта - из темы по ссылке - изменение файла с сохранением пропорций под заданную ширину и Ваш скрипт с отображением изображения :
Код:
#Include <GDIPlus.au3>

$Hnew = 400

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile('test.jpg')
$H = _GDIPlus_ImageGetHeight($hImage)
$W = _GDIPlus_ImageGetWidth($hImage)
ConsoleWrite('$H='&$H&@CR)
ConsoleWrite('$W='&$W&@CR)
    $H = $Hnew / $W * $H
	$W = $Hnew
$hThumb = _GDIPlus_ImageGetThumbnail($hImage, $W, $H)
_GDIPlus_ImageSaveToFile($hThumb, 'Resized.jpg')
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ImageDispose($hThumb)
_GDIPlus_Shutdown()



SplashImageOn('', @ScriptDir & '\Resized.jpg', $W, $H, -1, -1, 1)
Sleep(3000) ;~ Показываем на 3 секунды
SplashOff()
 
Автор
M

mv6677

Новичок
Сообщения
105
Репутация
0
ra4o , вполне подходит такое решение.
Спасибо за ответ
 
Верх