Converting from 32bit/16bithalf to Photoshop 16bit - without merging layers

New Here ,
Jun 23, 2022 Jun 23, 2022

Copy link to clipboard

Copied

I would like to convert multilayer PSDs (or multichannel EXR), from 16bit half float or 32bit, to 16bit Photoshop (15bit something) - without! merging of the layers.

Problem is, this is part of a larger, automated production, with potentially tens of thousands of documents, so manual work is not an option.
The other problem is, Photoshop can convert either by merging the layers, showing the HRD Toning dialog, or it does not merge but then gives no options to do the tone mapping.

In order for the image to look correct in 16bit, i need to merge and select Gamma/Exposure. When Don'tMerge is selected, LocalAdaption is automatically applied, which is/looks wrong.

The js command app.activeDocument.bitsPerChannel = BitsPerChannelType.SIXTEEN; is basically the merge option. Not an option.

The same story via the script listener code:

var idCnvM = charIDToTypeID( "CnvM" );
var desc27 = new ActionDescriptor();
var idDpth = charIDToTypeID( "Dpth" );
desc27.putInteger( idDpth, 16 );
var idMrge = charIDToTypeID( "Mrge" );
desc27.putBoolean( idMrge, false );
executeAction( idCnvM, desc27, DialogModes.NO );

Does not merge but applies the LocalAdpation. Not an option.

When going through the Merge>Gamma/Exp dialoge, the script listener produces:

var idCnvM = charIDToTypeID( "CnvM" );
var desc1405 = new ActionDescriptor();
var idDpth = charIDToTypeID( "Dpth" );
desc1405.putInteger( idDpth, 16 );
var idMrge = charIDToTypeID( "Mrge" );
desc27.putBoolean( idMrge, false );
var idWith = charIDToTypeID( "With" );
var desc1406 = new ActionDescriptor();
var idVrsn = charIDToTypeID( "Vrsn" );
desc1406.putInteger( idVrsn, 6 );
var idMthd = charIDToTypeID( "Mthd" );
var idhdrToningMethodType = stringIDToTypeID( "hdrToningMethodType" );
var idhdrtypetwo = stringIDToTypeID( "hdrtype2" );
desc1406.putEnumerated( idMthd, idhdrToningMethodType, idhdrtypetwo );
var idExps = charIDToTypeID( "Exps" );
desc1406.putDouble( idExps, 0.000000 );
var idGmm = charIDToTypeID( "Gmm " );
desc1406.putDouble( idGmm, 1.000000 );
var iddeghosting = stringIDToTypeID( "deghosting" );
desc1406.putBoolean( iddeghosting, false );
var idhdrOptions = stringIDToTypeID( "hdrOptions" );
desc1405.putObject( idWith, idhdrOptions, desc1406 );
executeAction( idCnvM, desc1405, DialogModes.NO );

I then tried to combine the commands in order to not merge but still do Gamma/Exp, and you may call it optimistic or silly. Anyway it didn't work of course.

But i am a bit out of options now, and ActionDescriptors are not really my bread and butter.
Is there even a way to force or seduce Photoshop to do that?


For some background, even half float 16bit is treated like 32bit in PS, making it a little unattractive for PSBs sold/send to customers. Any suggestion is greatly appreciated.

TOPICS
Actions and scripting , Cross-app workflows

Views

70

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 02, 2022 Jul 02, 2022

Copy link to clipboard

Copied

The appearance of a layered 32bit image is not necessarily translatable to layered 16bit, so I am not sure I fully follow. 

Could you post meaningful screenshots (including all pertinent Panels) to illustrate? 

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
Jul 02, 2022 Jul 02, 2022

Copy link to clipboard

Copied

@Alexander24982385ttng – If you go into Color Settings (CMD/CTRL SHIFT K) you can check the box to "Blend RGB Colours Using Gamma = 1.00" and then the visual appearance of the file converted from 32bpc to *layered* 16 bpc will be the same. Until you flatten the image, changing the RGB blending gamma will have an effect, however, once flattened there is nothing to blend and the effect of the linear blend gamma will be "baked in".

 

ScriptingListener can record enabling and disabling this setting.

 

Hope this helps.

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Community Professional ,
6 hours ago 6 hours ago

Copy link to clipboard

Copied

LATEST

Create and assign after conversion a special profile with gamma 1.

 

No?

Likes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines