Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Изменение размера jpg, bmp

Ответить
Настройки темы
[решено] Изменение размера jpg, bmp

Старожил


Сообщения: 352
Благодарности: 44


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: -TRM-
Дата: 27-02-2019
Приветствую, возможно ли изменять размеры "рисунков" в 640*480 не теряя качества изображения ?
Пробовал так, но качество сильно ухудшается.
Код: Выделить весь код
#include <GDIPlus.au3>
Func Pic_Image($PIC_Load, $Pic_Save, $Pic_Horizontal, $Pic_Vertikal)
	FileDelete($Pic_Save)
	_GDIPlus_Startup()
	$hImage = _GDIPlus_ImageLoadFromFile($PIC_Load)
	;$H = _GDIPlus_ImageGetHeight($hImage)
	;$W = _GDIPlus_ImageGetWidth($hImage)
	;ConsoleWrite('$H='&$H&@CR)
	;ConsoleWrite('$W='&$W&@CR)

	;    $H1 =$Wnew
	;    $W1 =$Wnew / $H * $W


	$hThumb = _GDIPlus_ImageGetThumbnail($hImage, $Pic_Horizontal, $Pic_Vertikal)
	_GDIPlus_ImageSaveToFile($hThumb, $Pic_Save)
	_GDIPlus_ImageDispose($hImage)
	_GDIPlus_ImageDispose($hThumb)
	_GDIPlus_Shutdown()
EndFunc

Pic_Image("с:\6.jpg", "с:\background.bmp", 640, 480)
Только нужно чтобы выходной файл был в формате BMP

Отправлено: 11:44, 27-02-2019

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата -TRM-:
сделать так, чтобы высота была пропорциональна ширине »
Код: Выделить весь код
#include <GDIPlus.au3>

_Image_Scale('Src.jpg', 'Dst.jpg', 0.5)

Func _Image_Scale($sSrc_File, $sDest_File, $iScale)
    _GDIPlus_Startup()

    Local $hImage = _GDIPlus_ImageLoadFromFile($sSrc_File)
    Local $hResized = _GDIPlus_ImageScale($hImage, $iScale, $iScale)

    _GDIPlus_ImageSaveToFile($hResized, $sDest_File)

    _GDIPlus_imageDispose($hImage)
    _GDIPlus_ImageDispose($hResized)

    _GDIPlus_Shutdown()
EndFunc
Это в два раза уменьшит размер.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 13:22, 02-03-2019 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Можно ещё так (с возможностью указать фиксированную ширину):

Код: Выделить весь код
#include <GDIPlus.au3>

_Image_Scale('Src.jpg', 'Dst.jpg', 400)

Func _Image_Scale($sSrc_File, $sDest_File, $iWidth, $iHeight = -1)
    _GDIPlus_Startup()

    Local $hImage = _GDIPlus_ImageLoadFromFile($sSrc_File)
    Local $iImg_W = _GDIPlus_ImageGetWidth($hImage)
    Local $iImg_H = _GDIPlus_ImageGetHeight($hImage)

    Local $iScale, $hResized

    If $iHeight = -1 Then
        $iScale = (100 / $iImg_W * $iWidth) / 100
        $hResized = _GDIPlus_ImageScale($hImage, $iScale, $iScale)
    Else
        $hResized = _GDIPlus_ImageResize($hImage, $iWidth, $iHeight)
    EndIf

    _GDIPlus_ImageSaveToFile($hResized, $sDest_File)

    _GDIPlus_imageDispose($hImage)
    _GDIPlus_ImageDispose($hResized)

    _GDIPlus_Shutdown()
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 02-03-2019 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Изменение размера jpg, bmp

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Изменение размера изображений *.png; *.jpg; *.jpeg; *.bmp it3 Скриптовые языки администрирования Windows 5 18-12-2018 12:43
CMD/BAT - Скрипт для сжатия jpg, bmp, pdf ColdDyn Скриптовые языки администрирования Windows 1 17-01-2017 15:00
Медиа - Копирование фоток с фотоаппарата через буфер - вместо .jpg получаю .bmp CyraxZ Microsoft Windows 2000/XP 6 15-02-2014 11:35
Графика - Программы для конвертирования BMP в JPG Surround Программное обеспечение Windows 16 22-12-2008 21:56
[решено] Не могу сохранит jpg-файлы в IE, предлагается Безымянный.bmp Garel Хочу все знать 20 03-10-2006 17:25




 
Переход