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

  • Автор темы Автор темы IVA2000
  • Дата начала Дата начала
Хотя... я начинаю подозревать, что это мозайика и нужно разложить картинку на элементы мозаики в пределах существующего набора цветов (Lab значения), потом получить собственно таблицу, по которой можно её собрать. Если так , то данный способ туда - сюда - туда не оптимален :)
 
  • Спасибо
Реакции: _MBK_
То же самое ж можно делать не выходя из фотошопа
Технически можно, только загонять туда придется формулы и вычисления по ним, отлажка тоже там так себе.
Для примера как в фотошоповском жабаскрипте установить цвет пикселя в 16-бит на канал лаб и без дебильных округлений до целого?
 
Самая быстрая дорога та, которую знаешь.
Но ТС стоило бы всё же изложить задачу целиком.
 
Технически можно, только загонять туда придется формулы и вычисления по ним, отлажка тоже там так себе.
Для примера как в фотошоповском жабаскрипте установить цвет пикселя в 16-бит на канал лаб и без дебильных округлений до целого?

ну вот так примерно
Код:
var idset = stringIDToTypeID( "set" );
    var desc25 = new ActionDescriptor();
    var idnull = stringIDToTypeID( "null" );
        var ref14 = new ActionReference();
        var idcolor = stringIDToTypeID( "color" );
        var idforegroundColor = stringIDToTypeID( "foregroundColor" );
        ref14.putProperty( idcolor, idforegroundColor );
    desc25.putReference( idnull, ref14 );
    var idto = stringIDToTypeID( "to" );
        var desc26 = new ActionDescriptor();
        var idluminance = stringIDToTypeID( "luminance" );
        desc26.putDouble( idluminance, 35.290000 );
        var ida = stringIDToTypeID( "a" );
        desc26.putDouble( ida, 61.900000 );
        var idb = stringIDToTypeID( "b" );
        desc26.putDouble( idb, 71.800000 );
    var idlabColor = stringIDToTypeID( "labColor" );
    desc25.putObject( idto, idlabColor, desc26 );
    var idsource = stringIDToTypeID( "source" );
    desc25.putString( idsource, """eyeDropperSample""" );
executeAction( idset, desc25, DialogModes.NO );
 
округляет до 2 знака после запятой, если что
 
Технически можно, только загонять туда придется формулы и вычисления по ним, отлажка тоже там так себе.
Для примера как в фотошоповском жабаскрипте установить цвет пикселя в 16-бит на канал лаб и без дебильных округлений до целого?
Нормальная отлажка в ESTK, по мне, так лучше чем в экселе. Попиксельно рисовать на экране - ужасный изврат, проще сразу сгенерить весь массив и скопом загрузить его. А как без округления обойтись ты собрался, когда фотошоп оперирует целыми?
 
А как без округления обойтись ты собрался, когда фотошоп оперирует целыми?
не целыми. координаты Lab с точностью до второго знака после запятой

проще сразу сгенерить весь массив и скопом загрузить его
так raw сразу записать, открыть и в Lab через split/merge - все в коде. но с другой стороны, действительно надо овладеть инструментарием прежде
 
так raw сразу записать, открыть и в Lab через split/merge - все в коде. но с другой стороны, действительно надо овладеть инструментарием прежде
По идее, можно и этот этап сэкономить, например, записав неупакованный TIFF
 
можно, но tiff несколько более сложный формат )
 
По идее, можно и этот этап сэкономить, например, записав неупакованный TIFF
Да, так можно, хотя формат жуткой старый и многовариантный. Непонятно как будет интерпретироваться фотошопом, к примеру там есть 64-бита на канал с плавающей точкой. Фотошоп такой сможет открыть?
 
Парни, вы о чем? Или я пропустил объявление конкурса на самое извращённое решение? ;)
 
Да, так можно, хотя формат жуткой старый и многовариантный. Непонятно как будет интерпретироваться фотошопом, к примеру там есть 64-бита на канал с плавающей точкой. Фотошоп такой сможет открыть?
Так фотошоп и рав такой не откроет
 
Код:
var idsplitChannels = stringIDToTypeID( "splitChannels" );
    var desc56 = new ActionDescriptor();
executeAction( idsplitChannels, desc56, DialogModes.NO );


// =======================================================
var idmergeChannels = stringIDToTypeID( "mergeChannels" );
    var desc60 = new ActionDescriptor();
    var idnull = stringIDToTypeID( "null" );
        var list2 = new ActionList();
            var ref33 = new ActionReference();
            var iddocument = stringIDToTypeID( "document" );
            ref33.putName( iddocument, "Untitled-1_Lightness" );
        list2.putReference( ref33 );
            var ref34 = new ActionReference();
            var iddocument = stringIDToTypeID( "document" );
            ref34.putName( iddocument, "Untitled-1_a" );
        list2.putReference( ref34 );
            var ref35 = new ActionReference();
            var iddocument = stringIDToTypeID( "document" );
            ref35.putName( iddocument, "Untitled-1_b" );
        list2.putReference( ref35 );
    desc60.putList( idnull, list2 );
    var idmode = stringIDToTypeID( "mode" );
    var idcolorSpace = stringIDToTypeID( "colorSpace" );
    var idlabColor = stringIDToTypeID( "labColor" );
    desc60.putEnumerated( idmode, idcolorSpace, idlabColor );
executeAction( idmergeChannels, desc60, DialogModes.NO );
 
Так фотошоп и рав такой не откроет
raw это другой класс формата, а tiff стандартный графический файл (но с такой кучей разновидностей что все их варианты не поддерживает ни одна программа).
 
raw это другой класс формата, а tiff стандартный графический файл (но с такой кучей разновидностей что все их варианты не поддерживает ни одна программа).
ну можно сохранить в тот вариант, который фотошоп откроет. 'hz'
 
у можно сохранить в тот вариант, который фотошоп откроет.
Можно, но он почти не будет отличаться от raw, только куча оверхеда на поддержку фич tiff и куча времени на отлов ошибок.
Библиотеки в эксель не завезли, конечно можно через references подключить хоть черта лысого, но не люблю подобные зависимости.