169 похожих чатов

Доброе утро. У меня есть вопрос: Как мне сохранить изображение 16 bit

grayscale?

Не важно в каком формате, у меня есть Uint16List яркости и нужно их сохранить, всё равно это изображение потом идёт на вход ffmpeg, главное, чтобы без потери качества изображения.

Подскажите, пожалуйста, с помощью какой библиотеки это можно сделать?
Спасибо.

29 ответов

25 просмотров

Кажется вот что тебе нужно https://pub.dev/documentation/image/latest/image/grayscale.html

Sheldon-Cooper Автор вопроса
Serge Shkurko
Кажется вот что тебе нужно https://pub.dev/documen...

Мне не нужно конвертировать из пространства RGB в пространство grayscale, у меня и так уже изображение grayscale 16 бит на пиксель. А как сохранить в формате 16 бит на пиксель? Если сохранять используя библиотеку Image, то, по моему она сохраняет, например, png, всегда как 8 бит на пиксель.

Sheldon Cooper
Мне не нужно конвертировать из пространства RGB в ...

Аа, так можно же как-то перевести Image не сохраняет в png, только в сырой формат bitmap По этому даже небольшие картинки с ним занимаю мегабайты памяти

Sheldon-Cooper Автор вопроса
Serge Shkurko
Аа, так можно же как-то перевести Image не сохраня...

Нет такого формата изображения "сырой bitmap".

Sheldon Cooper
Нет такого формата изображения "сырой bitmap".

Как нет? Есть) BMP расширение В документации указан https://api.flutter.dev/flutter/dart-ui/instantiateImageCodec.html

Sheldon-Cooper Автор вопроса
Serge Shkurko
Как нет? Есть) BMP расширение В документации указ...

Bmp и "сырой bitmap" это разные вещи, у формата bmp есть заголовок, в котором закодированы: - Метод сжатия - Разрешение - magic number - И ещё куча вещей. Для того чтобы преобразовать изображение из "сырого beatmap" в bmp и нужна библиотека. Так я и спрашиваю: если такая библиотека которая позволит сохранить мне 16 bit grayscale изображение?

Sheldon-Cooper Автор вопроса
Serge Shkurko
Как нет? Есть) BMP расширение В документации указ...

Видите там Unit8List? Эта библиотека поддерживает только изображения 8 бит на пиксель.

Да да, уже прочитал Всегда казалось что bitmap это полностью сырой формат, странно)

Sheldon-Cooper Автор вопроса
Serge Shkurko
Да да, уже прочитал Всегда казалось что bitmap это...

Как он может быть полностью сырой, если нужно, хотя бы, разрешение указать, чтобы знать когда на следующую строку переходить, при выводе изображения, чтобы изображение нормально отобразить?

Sheldon Cooper
Как он может быть полностью сырой, если нужно, хот...

И все же возвращаясь к вашему вопросу вы говорите что у вас 16 бит Dart ui image принимает и спокойно обрабатывает цвет 32бит Считаем по 8 на канал цвета r+g+b+alpha А в каком формате цвет у вас сейчас, не совсем понимаю что хранится в "16 битах на пиксель" У вас 4 канала и каждый с 16 битами цвета?

Sheldon-Cooper Автор вопроса
Serge Shkurko
И все же возвращаясь к вашему вопросу вы говорите ...

Ну 16 бит на пиксель, grayscale. https://en.m.wikipedia.org/wiki/Color_depth

Sheldon-Cooper Автор вопроса
Serge Shkurko
И все же возвращаясь к вашему вопросу вы говорите ...

Нет, меня и устроит и цветное изображение только с глубиной цвета 16 бит на пиксель.

Sheldon Cooper
Нет такого формата изображения "сырой bitmap".

Почему нет? А как же RAW? Да и bmp очень близок к этому...

Adel' Gilyazeev
Почему нет? А как же RAW? Да и bmp очень близок к ...

RAW это еще не битмап, это сырая инфа с сенсора которую еще надо "проявить" в битмап 😉

Sheldon Cooper
Видите там Unit8List? Эта библиотека поддерживает ...

Это массив байт, а не то что 8 бит на пиксель\

Ярослав
RAW это еще не битмап, это сырая инфа с сенсора ко...

Так я и говорю что это самый сырой тип данных... ЗЫ, там тоже куча заголовычных данных (больше чем где либо) и присутствует порой сжатие (например у Canon)

А чё тогда тебе просто массив байт в файл не записывать просто как есть? Посмотри typedData, там можно отобразить Uint16List в байты и его записать и наоборот...

Adel' Gilyazeev
Так я и говорю что это самый сырой тип данных... З...

Угумс, хотя самые злые негативы чаще у пентакса и сони (полный трэш), а каноновские только по гамме гимор могут добавить.

Sheldon-Cooper Автор вопроса
Adel' Gilyazeev
А чё тогда тебе просто массив байт в файл не запис...

Я сейчас и записываю массив байт с заголовком. В tiff, он поддерживает 16 бит на пиксель, но, дело в том, что нужно записывать ещё и разрешение, то есть нужно копаться в header(footer) формата файла tiff. Я не хочу этого делать. Я считаю, что для этого должна быть библиотека.

Sheldon-Cooper Автор вопроса
Adel' Gilyazeev
Это массив байт, а не то что 8 бит на пиксель\

Да это массив байт, но библиотека image поддерживает сохранение изображений только с глубиной 8 бит на пиксель.

Sheldon Cooper
Я сейчас и записываю массив байт с заголовком. В t...

Я считаю что должна быть библиотека по работе с Эксель файлами старого (бинарного) типа

Sheldon Cooper
Я сейчас и записываю массив байт с заголовком. В t...

Тогда зачем вам вообще какие либо форматы?! Записывай прям сразу в файл, делов то

Sheldon Cooper
Да это массив байт, но библиотека image поддержива...

Не ебу чё за библиотека... Потому не понятно на что жалоба

Adel' Gilyazeev
Не ебу чё за библиотека... Потому не понятно на чт...

Жалоба, по всей видимости, на мироздание: вот ему надо, а библиотеку для этого не сделали, не предусмотрели, не подумали, сволочи, всехрасстрелять.

Sheldon-Cooper Автор вопроса
Ярослав
Жалоба, по всей видимости, на мироздание: вот ему ...

Нет никаких жалоб, есть вопрос: https://t.me/rudart/529773

Sheldon Cooper
Нет никаких жалоб, есть вопрос: https://t.me/ruda...

Ну смотри 16 бит это два раза по 8 Что мешает оперировать байтами хз

Adel' Gilyazeev
Я считаю что должна быть библиотека по работе с Эк...

А для этого даже на нативе ничего не найти...

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта