Класс 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(). Этот метод можно вызывать непосредственно. Формат метода:
В качестве параметра указывается путь с расширением .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(). Формат метода:
В качестве параметра указывается путь с расширением .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(). Этот метод можно вызывать непосредственно. Формат метода:
В качестве параметра указывается путь с расширением .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. Формат метода:
Формат 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("Не удалось сохранить изображение")
При выполнении операции методом save_rgb() библиотека ImageMagick не используется.
Сохранение изображения в файл в формате RAW RGBA
Для взаимодействия с библиотекой ImageMagick имеется метод save_rgba(), позволяющий сохранить изображение в файл в формате RAW RGBA. Этот формат хорошо понимает библиотека ImageMagick. Формат метода:
Формат 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("Не удалось сохранить изображение")
При выполнении операции методом save_rgba() библиотека ImageMagick не используется.
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage