Главная » 2025 » Декабрь » 10 » UImage: изменение размера изображения
19:52
UImage: изменение размера изображения

UImage: изменение размера изображения

Изменить размер изображения позволяет статический метод resize() из класса UImageChange. Формат метода:

UImageChange.resize(<UImage>, <Ширина>, <Высота>, filter=None)

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

Параметр filter задает способ изменения размеров. Можно указать значения: "bicubic" (значение по умолчанию), "nearest", "box", "bilinear", "hamming" или "lanczos". Подробное описание фильтров можно найти в документации к библиотеке Pillow.

Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки Pillow. Уменьшим размер изображения в два раза:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
w, h = img.get_size()
img2 = UImageChange.resize(img, w // 2, h // 2)
if img2:
    print(img2)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Если библиотека Pillow недоступна, то метод resize() передает управление статическому методу resize_im(), который выполняет аналогичную операцию с помощью библиотеки ImageMagick. Этот метод можно вызвать непосредственно. Формат метода:

UImageChange.resize_im(<UImage>, <Ширина>, <Высота>, filter=None)

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

Параметр filter задает способ изменения размеров. Можно указать значения: "Point", "Hermite", "Cubic", "Box", "Gaussian", "Catrom", "Triangle", "Quadratic", "Mitchell" или "CubicSpline". Подробное описание фильтров можно найти в документации к библиотеке ImageMagick.

Метод возвращает объект UImage или значение None в случае ошибки. Уменьшим размер изображения в два раза:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
w, h = img.get_size()
img2 = UImageChange.resize_im(img, w // 2, h // 2)
if img2:
    print(img2)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Если в качестве ширины или высоты указать значение 0, то второй компонент будет рассчитан автоматически с соблюдением пропорций. Укажем только ширину:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
img2 = UImageChange.resize_im(img, 250, 0)
if img2:
    print(img2)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Статический метод thumbnail() из класса UImageChange создает уменьшенную версию изображения, указанного размера.  Формат метода:

UImageChange.thumbnail(<UImage>, <Ширина>, <Высота>)

В качестве первого параметра указывается объект UImage. Второй параметр задает новую ширину изображения, а третий параметр — новую высоту. Обратите внимание на то, что изменение размера производится пропорционально. Иными словами за основу берется минимальное значение, а второе значение вычисляется пропорционально первому. Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки Pillow. Пример:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
print(img)      # UImage(width=500, height=333)
img2 = UImageChange.thumbnail(img, 250, 300)
if img2:
    print(img2) # UImage(width=250, height=167)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Уменьшить изображение в два раза с соблюдением пропорций позволяет статический метод reduce() из класса UImageChange. Формат метода:

UImageChange.reduce(<UImage>)

В качестве параметра указывается объект UImage. Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки Pillow. Уменьшим изображение в два раза:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
print(img)      # UImage(width=500, height=333)
img2 = UImageChange.reduce(img)
if img2:
    print(img2) # UImage(width=250, height=167)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Если библиотека Pillow недоступна, то метод reduce() передает управление статическому методу reduce_im(), который выполняет аналогичную операцию с помощью библиотеки ImageMagick. Этот метод можно вызвать непосредственно. Формат метода:

UImageChange.reduce_im(<UImage>)

В качестве параметра указывается объект UImage. Метод возвращает объект UImage или значение None в случае ошибки. Уменьшим изображение в два раза:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
print(img)      # UImage(width=500, height=333)
img2 = UImageChange.reduce_im(img)
if img2:
    print(img2) # UImage(width=250, height=167)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage

Категория: UImage | Просмотров: 6 | Добавил: unicross | Теги: UImage, ImageMagick, Python, PIL | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Списки слов [10]
Списки слов и словари
OCR [4]
Оптическое распознавание символов
UImage [80]
Графическая библиотека для Python
UImage C [7]
Графическая библиотека для Python
Программы [4]
Полезные программы
Прочее [3]
Другие темы
Календарь
«  Декабрь 2025  »
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
293031