Главная » 2025 » Декабрь » 01 » Класс UImageRGB: сохранение изображения в файл
20:58
Класс UImageRGB: сохранение изображения в файл

Класс UImageRGB: сохранение изображения в файл

Сохранить изображение в файл позволяет метод save(). Формат метода:

save(<Путь>, quality_jpg=70, compress_level_png=6)

В качестве первого параметра указывается путь к файлу. По умолчанию изображения в формате JPEG сохраняются с качеством 70. С помощью параметра quality_jpg можно указать другое значение в диапазоне от 0 до 100. Параметр compress_level_png позволяет задать степень сжатия для PNG файлов  в диапазоне от 0 до 9 (значение по умолчанию: 6). Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False.

Создадим изображение красного цвета и сохраним его в файл в формате PNG:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save("test.png"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Без сторонних библиотек метод save() может сохранить файлы в следующих форматах:

  • .uimage — собственный формат файла изображения библиотеки UImage. Изображение сохраняется целиком с максимальной скоростью;
  • .ppm — бинарный формат (P6) файла PPM;
  • .rgb — содержит только набор байтов в формате RGB. Формат RAW RGB ничего не знает ни о ширине изображения, ни о его высоте;
  • .rgba — содержит только набор байтов в формате RGBA. Формат RAW RGBA ничего не знает ни о ширине изображения, ни о его высоте.

Если сохраняемый файл имеет расширение .uimage, то методы save() и save_im() автоматически передают управление методу save_uimage_rgb(). Этот метод можно вызывать непосредственно. Формат метода:

save_uimage_rgb(<Путь>)

В качестве параметра указывается путь с расширением .uimage. Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False. Изображение сохраняется целиком с максимальной скоростью. Пример:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_uimage_rgb("test.uimage"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Вместо метода save_uimage_rgb() можно воспользоваться методом save_uimage_rgba(). Формат метода:

save_uimage_rgba(<Путь>)

В качестве параметра указывается путь с расширением .uimage. Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False. Изображение перед сохранением преобразуется в формат RGBA (альфа-канал будет содержать значения 255). Пример:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_uimage_rgba("test.uimage"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Если сохраняемый файл имеет расширение .ppm, то методы save() и save_im() автоматически передают управление методу save_ppm_p6(). Этот метод можно вызывать непосредственно. Формат метода:

save_ppm_p6(<Путь>)

В качестве параметра указывается путь с расширением .ppm. Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False. Пример:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_ppm_p6("test.ppm"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Сохранение изображения с помощью PIL (PILLOW)

Если доступна библиотека PIL (PILLOW), то с помощью метода save() можно сохранить изображение в форматах PNG, GIF, JPEG, BMP, TIFF и WebP. Для формата PNG можно указать степень сжатия (параметр compress_level_png), а для формата  JPEG — качество (параметр quality_jpg).

Если нужно сохранить изображение в каком-либо другом формате, поддерживаемом библиотекой PIL, то можно с помощью метода get_pil_image() произвести преобразование объекта UImageRGB в объект Image, а затем выполнить сохранение файла:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
# Преобразование объекта UImageRGB в объект Image
img_pil = img.get_pil_image()
print(img_pil.size)       # (300, 200)
print(img_pil.mode)       # RGB
# Сохранение с помощью PIL
img_pil.save("test.ppm")

Сохранение изображения с помощью ImageMagick

Если библиотека PIL (PILLOW) недоступна, то метод save() передаст управление методу save_im(), который сохраняет изображение с помощью библиотеки ImageMagick. Этот метод можно вызывать непосредственно. Формат метода:

save_im(<Путь>, quality_jpg=92, compress_level_png=7)

В качестве первого параметра указывается путь к файлу. По умолчанию изображения в формате JPEG сохраняются с качеством 92. С помощью параметра quality_jpg можно указать другое значение в диапазоне от 0 до 100. Параметр compress_level_png позволяет задать степень сжатия для PNG файлов  в диапазоне от 0 до 9 (значение по умолчанию: 7). Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False.

С помощью метода save_im() можно сохранить изображение в форматах PNG, GIF, JPEG, BMP, TIFF, WebP и др. Для формата PNG можно указать степень сжатия (параметр compress_level_png), а для формата  JPEG — качество (параметр quality_jpg).

Если путь содержит расширение .uimage, то метод save_im() передает управление методу save_uimage_rgb(). Если путь содержит расширение .ppm, то метод save_im() передает управление методу save_ppm_p6(). Если путь содержит расширение .rgb, то метод save_im() передает управление методу save_rgb(). Если путь содержит расширение .rgba, то метод save_im() передает управление методу save_rgba().

Создадим изображение красного цвета и сохраним его в файл в формате PNG:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_im("test.png"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Сохранение изображения в файл в формате RAW RGB

Для взаимодействия с библиотекой ImageMagick имеется метод save_rgb(), позволяющий сохранить изображение в файл в формате RAW RGB. Этот формат хорошо понимает библиотека ImageMagick. Формат метода:

save_rgb(<Путь>)

Формат RAW RGB ничего не знает ни о ширине изображения, ни о его высоте. Он содержит только набор байтов в формате RGB. В качестве параметра указывается путь до файла с расширением .rgb. Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False. Пример:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_rgb("test.rgb"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

Сохранение изображения в файл в формате RAW RGBA

Для взаимодействия с библиотекой ImageMagick имеется метод save_rgba(), позволяющий сохранить изображение в файл в формате RAW RGBA. Этот формат хорошо понимает библиотека ImageMagick. Формат метода:

save_rgba(<Путь>)

Формат RAW RGBA ничего не знает ни о ширине изображения, ни о его высоте. Он содержит только набор байтов в формате RGBA. В качестве параметра указывается путь до файла с расширением .rgba. Если операция выполнена успешно, то метод вернет значение True, а в противном случае — значение False. Альфа-канал будет содержать значения 255. Пример:

from unicross_image.ucolor import UColor
from unicross_image.uimagergb import UImageRGB

img = UImageRGB(300, 200, UColor(255, 0, 0))
if img.save_rgba("test.rgba"):
    print("Изображение успешно сохранено")
else:
    print("Не удалось сохранить изображение")

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

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