Bug 54562

Summary: vips linear изменяет глубину каналов tiff на 16 бит
Product: Sisyphus Reporter: Владислав Петрухин <petruhinvi>
Component: vipsAssignee: Konstantin A Lepikhov (L.A. Kostis) <lakostis>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: lakostis, mike, rider, rom_as
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Пример изображения
none
сравнение глубины изображений
none
Попытка открыть файл после увеличения яркости none

Description Владислав Петрухин 2025-05-30 14:48:31 MSK
Created attachment 18644 [details]
Пример изображения

Стенды:
Alt Workstation K 11.0 x86_64 (обновленный до Sisyphus)
Alt Workstation 11.0 x86_64 (обновленный до Sisyphus)

Версия: vips-8.16.1-alt1.x86_64

Шаги:
1. # apt-get install vips
2. Загрузить изображение tiff (пример изображения прикрепляю).
3. Выполнить (для увеличения яркости):
$ vips linear file.tiff output_brightened.tiff 1, 10
4. Открыть output_brightened.tiff встроенной программой для просмотра изображений (например, GwenView). 

Ожидаемый результат: успешное открытие изображения.
Реальный результат: изображение не открывается.


Исследование ошибки:

vips linear изменяет глубину каналов с 8 бит до 16 бит. Это можно проверить при помощи команды "$ identify -verbose output_brightened.tiff" (нужно установить пакет ImageMagick). По этой причине не удается открыть файл.
  
Выполнение команды
$  vips cast output_brightened.tiff output_fixed.tiff uchar
преобразует глубину каналов к 8 битам. После этого файл output_fixed.tiff успешно открывается (яркость применилась).

При выполнении аналогичной операции с другими форматами такого не происходит.
Comment 1 Владислав Петрухин 2025-05-30 14:48:48 MSK
Created attachment 18645 [details]
сравнение глубины изображений
Comment 2 Владислав Петрухин 2025-05-30 14:49:27 MSK
Created attachment 18646 [details]
Попытка открыть файл после увеличения яркости
Comment 3 Konstantin A Lepikhov (L.A. Kostis) 2025-06-20 00:25:22 MSK
❯ vips linear
calculate (a * in + b)
usage:
   linear in out a b [--option-name option-value ...]
where:
   in           - Input image, input VipsImage
   out          - Output image, output VipsImage
   a            - Multiply by this, input VipsArrayDouble
   b            - Add this, input VipsArrayDouble
optional arguments:
   uchar        - Output should be uchar, input gboolean
                        default: false
operation flags: sequential 

❯ vips linear file.tiff output_brightened.tiff 1.10 --uchar 1

❯ gthumb output_brightened.tiff

(изображение открывается)

Думаю, вам нужен параметр uchar (который выключен по-умолчанию).