[PS CC2022] попиксельно брать цвет из таблиц Ms Excel

IVA2000

Топикстартер
10 лет на форуме
Сообщения
74
Реакции
16
Коллеги, большое вам спасибо! Я уже понял направление. Но не понял детали.

Исходник в экселе подгоню под нужный формат сам.

~RA~, будет ли уместно, если вы возьмете с меня денежку и покажете как действовать у меня на компьютере (Windows)?

Мне непонятно:
1) Как использовать конвертор ImageMagick и какой конкретно.
2) Как конвертировать понятный мне cielab(32.297, 79.1875, -107.86) в (82,207,20).
3) Что значат циферки "3,2,0" в строчке "3,2,0,65535,cielab"

мои координаты:
iva2000@gmail.com
8-926-427-25-25
 

Вложения

  • 2022-07-08_10-14-16.png
    2022-07-08_10-14-16.png
    115.7 КБ · Просм.: 128
Последнее редактирование:

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469
~RA~, будет ли уместно, если вы возьмете с меня денежку и покажете как действовать у меня на компьютере (Windows)?
Можно и так, а пока бесплатно поотвечаю тут, вдруг этого окажется достаточно. ;)
1) Как использовать конвертор ImageMagick и какой конкретно.
3) Что значат циферки "3,2,0" в строчке "3,2,0,65535,cielab"
3,2 — размер изображения в пикселах. 0 — в вашем случае просто укажите и не забивайте голову. По-моему этот параметр и вовсе можно не передавать.

2) Как конвертировать понятный мне cielab(32.297, 79.1875, -107.86) в (82,207,20).
Я уверен, вы способны нагуглить ответ или додуматься до него самостоятельно. ;)

А почему вы проигнорировали мой вопрос
когда я предлагал написать для вас готовое решение?

PS. Ребус с картинки я не разгадал.
 
Последнее редактирование:

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
когда я предлагал написать для вас готовое решение?
Это не вопрос, это ребус... Возможно "How money?" но расшифровывать такое HZ я бы не рискнул.

p.s. если что можно стукнуться в скайп по нику, может что-нить подскажу на выходных.
 
Последнее редактирование:

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469
Это не вопрос, это ребус... Возможно "How money?"
Прошу прощения, видимо я научился плохому да, к тому же, очевидно не распознаваемому в русскоязычном сообществе.
Я имел ввиду "сколько вы готовы заплатить".
 

IVA2000

Топикстартер
10 лет на форуме
Сообщения
74
Реакции
16
~RA~, я вам благодарен за подсказку.
Я так и не догадался как конвертировать cielab(32.297, 79.1875, -107.86) в (82,207,20).
И ImageMagick не запускается, только просмотровщик IMDisplay. Вероятно ImageMagick - консольное приложение, а я умею использовать только приложения, которые вызываются кнопками.
И тем не менее, если не смогу решить иными способами задачу, вернусь изучать ImageMagick.
Про деньги вопрос сложный, для всех деньги разные. Мне комфортно перевести вам за уже оказанную помощь 2500р. Это взятая с потолка сумма, которую не жалко, но вроде и не совсем стыдно.
Если вы пришлете номер телефона или карточки, я переведу на Сбер или Тинькофф, или иной указанный вами банк.
_
splxgf, Мне нужна ваша помощь, буду благодарен, если вы подскажете. У меня трудности с запуском скайпа. Эта программа меня не слушается, когда-то я ее удалил, а теперь поставил снова, а она даже не открывается. Может быть Zoom, Яндекс.телемост, Whatsapp или что-то аналогичное? Мне нужно понять как конкретно записывать фотошоп raw. И как перекопировывать каналы R->L, G->a, B->b. Должно быть просто, если знать последовательность действий.
Весь день сегодня буду в дороге, но вечером и завтра у компьютера.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
И как перекопировывать каналы R->L, G->a, B->b. Должно быть просто, если знать последовательность действий.
Действительно, все настолько просто, что даже не пойму, как такая проблема непонимания могла возникнуть. Выделяете во вкладке Channels нужный канвл исходного RAW, Select All, Copy, выделяете нужный Lab канал, Paste
Единственно что - вам нужно во время экспорта в макросе правильно преобразовать ваше значение в восьмибитное целое
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
Действительно, все настолько просто, что даже не пойму, как такая проблема непонимания могла возникнуть. Выделяете во вкладке Channels нужный канвл исходного RAW, Select All, Copy, выделяете нужный Lab канал, Paste
Единственно что - вам нужно во время экспорта в макросе правильно преобразовать ваше значение в восьмибитное целое
split channels, потом merge сразу в Lab
 
  • Спасибо
Реакции: splxgf, ~RA~ и _MBK_

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469
Вероятно ImageMagick - консольное приложение, а я умею использовать только приложения, которые вызываются кнопками.
Так и есть.
Для запуска на винде нужно открыть командную строку написать путь к исполняемому файлу, потом к файлу txt, потом к файлу назначения.
Для nix систем с добавленным в path исполняемым файлом это выглядит так.
На винде будет как-то так.
convert.exe lab.txt lab.tif
Если совсем не выйдет, могу подключиться удалённо, настроить и показать как пользоваться.
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
split channels, потом merge сразу в Lab
Можно и так, чуть более технологично, но и более ***.
Я так и не догадался как конвертировать cielab(32.297, 79.1875, -107.86) в (82,207,20).
Ну к примеру яркость изменяется от 0 до 100, а кодировать нужно байтом, это диапазон 0..255
L = 32.297*255/100
координаты a,b имеют размерность -128..127
поэтому
a = 79.1875 + 128
Ну и немного повозиться с округлением (но чтобы не выйти за пределы диапазона 0..255) или отбрасыванием дробной части... или можете уйти в 16 бит на канал если захочется пострадать перфекционизмом.
 
Последнее редактирование модератором:
  • Спасибо
Реакции: ~RA~

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469
Если распрямить руки и не отвлекаться, то всё хорошо.
Код:
sh-3.2# magick xc:'cielab(0,-128, -128)' -depth 8 -colorspace LAB txt:
# ImageMagick pixel enumeration: 1,1,0,255,cielab
0,0: (0,0,0)  #000000  cielab(0,-127.5,-127.5)
sh-3.2# magick xc:'cielab(50, 0, 0)' -depth 8 -colorspace LAB txt:
# ImageMagick pixel enumeration: 1,1,0,255,cielab
0,0: (128,128,128)  #808080  cielab(50.1961,0.5,0.5)
sh-3.2# magick xc:'cielab(100, 127, 127)' -depth 8 -colorspace LAB txt:
# ImageMagick pixel enumeration: 1,1,0,255,cielab
0,0: (255,255,255)  #FFFFFF  cielab(100,127.5,127.5)
 
Последнее редактирование модератором:

Drawer

Участник
Сообщения
1 824
Реакции
806
с ячеек листа MS Exsel
заполнить картинку 1000×1000 пикселей
Кстати, а что за маньяк будет заполнять эти ячейки? Потому что иначе, смысла использовать Exsel не вижу... ну от слова совсем. Зачем он в этой цепи?
 
  • Спасибо
Реакции: ~RA~

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Какое нибудь профилирование, вероятно?
 

~RA~

Одарённая.
12 лет на форуме
Сообщения
11 919
Реакции
3 469
Кстати, а что за маньяк будет заполнять эти ячейки? Потому что иначе, смысла использовать Exsel не вижу... ну от слова совсем. Зачем он в этой цепи?
Сейчас в конце 2-ой страницы выяснится, что тс в екселе генерит с каким-нибудь шагом просто. Хотя, лаб сильно нелинеен и дело это дурное.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Да, будет реально смешно, если ктото просто выбрал экселовский VBA для генерации изображения, как самый доступный для себя инструмент ;)
 

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Да, будет реально смешно, если ктото просто выбрал экселовский VBA для генерации изображения, как самый доступный для себя инструмент
А что не так с экселем? очень удобная суперхренорезка.
1657440787822.png

Скрипт для записи raw-lab-файла из квадратной таблицы со значениями.
Код:
Sub SaveRAW()
Dim Lv, av, bv As Long

' Скрипт работает с текущей открытой книгой, должно существовать три листа с именами
' L, a, b: ожидаемые значения L 0..100; a,b -128..127

' Начальная ячейка диапазона
startrange = "b2"

' Путь для сохранения
basepath = "c:\2\"   ' слеш в конце обязателен.

' Имя файла, к имени автоматически добавляется размер и номер последовательности
Filename = "color"
sufix = 0


Set L = ActiveWorkbook.Sheets("L")
Set a = ActiveWorkbook.Sheets("a")
Set b = ActiveWorkbook.Sheets("b")

fullrange = L.Range(startrange).CurrentRegion.Address
workrange = startrange + Mid(fullrange, InStr(fullrange, ":"))

cols = L.Range(workrange).Columns.Count
Lines = L.Range(workrange).Rows.Count


For i = 1 To 10000
    fullpath = basepath + Filename + "_" + Trim(cols) + "x" + Trim(Lines) + "-" + Trim(sufix) + ".raw"
    If Dir(fullpath) <> "" Then
        sufix = sufix + 1
    Else
        Exit For
    End If
Next i

Open fullpath For Binary Access Write As #1

For y = 1 To Lines
For x = 1 To cols

dy = Range(startrange).Row + y - 1
dx = Range(startrange).Column + x - 1
Lv = 65535 * L.Cells(dy, dx) / 100
Call WriteV(Lv, x, y)
av = 65535 * (a.Cells(dy, dx) + 128) / (128 + 127)
Call WriteV(av, x, y)
bv = 65535 * (b.Cells(dy, dx) + 128) / (128 + 127)
Call WriteV(bv, x, y)

Next x
Next y

Close #1
End Sub

Sub WriteV(value, x, y)
    Dim HiBit, LoBit As Byte
    If value > 65535 Or value < 0 Then
        Debug.Print x, y, value
    End If
    HiBit = value \ 256
    LoBit = value Mod 256
    Put #1, , CByte(LoBit)
    Put #1, , CByte(HiBit)
End Sub
 
  • Спасибо
Реакции: ~RA~

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
  • Спасибо
Реакции: ~RA~

IVA2000

Топикстартер
10 лет на форуме
Сообщения
74
Реакции
16
Дорогие товарищи!
Вы совершенно правы. Я в Excel рисую картинки. Цвет на картинках должен быть верным, чтобы можно было сравнивать цвета разных участков картинки. И при наличии калиброванного монитора надеяться, что и абсолютная величина цвета примерно соответствует реальности.
Поэтому я рассчитываю эти картинки в LAB попиксельно, а затем открываю их в фотошопе.

Задачу решил splxgf. Его скрипт выгружает данные из Excel в картинку. Затем картинку надо открыть в фотошопе и путем вышеописанных манипуляций превратить в Lab. Пипеткой проверяется, что цвета действительно те, что в таблице Excel.

Выражаю благодарность ~RA~. Благодаря ~RA~ стало ясно, что задача в принципе решается. Только отсутствие у меня IT-квалификации и боязнь командной строки не позволила освоить ImageMagick. Без конструктивного участия ~RA~ проект мог бы не реализоваться. Я обещал 2500р, и переведу как только ~RA~ скажет куда. Если не скажет в течении недели, деньги уйдут на другие цели.
 
  • Спасибо
Реакции: ~RA~

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Дорогие товарищи!
Вы совершенно правы. Я в Excel рисую картинки. Цвет на картинках должен быть верным, чтобы можно было сравнивать цвета разных участков картинки. И при наличии калиброванного монитора надеяться, что и абсолютная величина цвета примерно соответствует реальности.
Поэтому я рассчитываю эти картинки в LAB попиксельно, а затем открываю их в фотошопе.

Задачу решил splxgf. Его скрипт выгружает данные из Excel в картинку. Затем картинку надо открыть в фотошопе и путем вышеописанных манипуляций превратить в Lab. Пипеткой проверяется, что цвета действительно те, что в таблице Excel.

Выражаю благодарность ~RA~. Благодаря ~RA~ стало ясно, что задача в принципе решается. Только отсутствие у меня IT-квалификации и боязнь командной строки не позволила освоить ImageMagick. Без конструктивного участия ~RA~ проект мог бы не реализоваться. Я обещал 2500р, и переведу как только ~RA~ скажет куда. Если не скажет в течении недели, деньги уйдут на другие цели.
Вы чертовски неудачный инструмент выбрали. То же самое ж можно делать не выходя из фотошопа. Не хотите разбираться с JS, так там и бейсик есть