c.pfaffenbichler
Community Expert
c.pfaffenbichler
Community Expert
Activity
‎Mar 06, 2025
02:04 AM
What happens when you double-click the Type Layer’ icon in the Layers Panel?
... View more
‎Mar 06, 2025
02:02 AM
Could you please post screenshots taken at View > 100% with the pertinent Panels (Toolbar, Layers, Options Bar, …) visible?
... View more
‎Mar 06, 2025
01:39 AM
The Filters Liquify and Displace seem quite different, so I doubt they would combine well.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 05, 2025
11:18 PM
1 Upvote
‎Mar 05, 2025
11:18 PM
1 Upvote
I do apologize, I had overlooked the psd in the original post.
// 2025, use it at your own risk;
if (app.documents.length > 0) {
if (hasLayerMask () == true) {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID("Chnl"), charIDToTypeID("Chnl"), charIDToTypeID("Msk "));
desc.putReference(charIDToTypeID("null"), ref);
desc.putBoolean(charIDToTypeID("MkVs"), false );
executeAction(charIDToTypeID("slct"), desc, DialogModes.NO );
// load transparency;
var desc5 = new ActionDescriptor();
var ref1 = new ActionReference();
var idchannel = stringIDToTypeID( "channel" );
var idselection = stringIDToTypeID( "selection" );
ref1.putProperty( idchannel, idselection );
desc5.putReference( stringIDToTypeID( "null" ), ref1 );
var ref2 = new ActionReference();
ref2.putEnumerated( idchannel, idchannel, stringIDToTypeID( "transparencyEnum" ) );
desc5.putReference( stringIDToTypeID( "to" ), ref2 );
executeAction( stringIDToTypeID( "set" ), desc5, DialogModes.NO );
// load layer mask;
var desc7 = new ActionDescriptor();
var ref3 = new ActionReference();
ref3.putEnumerated( idchannel, stringIDToTypeID( "ordinal" ), stringIDToTypeID( "targetEnum" ) );
desc7.putReference( stringIDToTypeID( "null" ), ref3 );
var ref4 = new ActionReference();
ref4.putProperty( idchannel, idselection );
desc7.putReference( stringIDToTypeID( "with" ), ref4 );
executeAction( stringIDToTypeID( "interfaceIconFrameDimmed" ), desc7, DialogModes.NO );
// check selection;
try {activeDocument.selection.bounds;
alert ("pixels")
}
catch (e) {alert ("empty")}
}
};
////// has layer mask //////
function hasLayerMask () {
var m_Dsc01, m_Ref01;
m_Ref01 = new ActionReference();
m_Ref01.putEnumerated(stringIDToTypeID("layer"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
m_Dsc01 = executeActionGet(m_Ref01);
return m_Dsc01.hasKey(charIDToTypeID("Usrs"));
};
... View more
‎Mar 05, 2025
11:10 PM
Well, I pay for the monthly CC subscription. Several mos ago, Adobe forced through an update and now I have beta. I thought everyone has beta now.
That claim seems … peculiar.
For one thing Adobe updates and upgrades are optional (if you opted to auto-update that is your own choice), for another Beta apps are a specific point in the CC app.
If you want to install Photoshop 2025 install it from »All apps«.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 05, 2025
11:05 PM
1 Upvote
‎Mar 05, 2025
11:05 PM
1 Upvote
Ps. do you know how to get the glowing, popping colors?
By @Stef33980059b1id
Please provide an image you want to edit thusly.
Edit:
... View more
‎Mar 05, 2025
08:16 AM
Please provide a file with the Gradient Layer.
... View more
‎Mar 05, 2025
07:52 AM
// create curves layer with white, gray and black determined by three color samplers;
// 2025, use it at your own risk;
// call the function to run the script;
createCurveAdjustmetFromColorSamplers();
// create a function fo hold most of the code;
function createCurveAdjustmetFromColorSamplers(){
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var myDocument = activeDocument;
// needs an open document in a color mode that supports layers;
if(app.documents.length == 0 || ( app.activeDocument.mode != DocumentMode.RGB ) ){
alert('This script requires a document in RGB');
return;
}
// color sample;
var outputArray = new Array();
var theSamples = [[1000,40], [1000, 500], [1000, 960]];
// collect the samples;
for(var sampleIndex = 0; sampleIndex < theSamples.length; sampleIndex++ ){
var theSampler = myDocument.colorSamplers.add(theSamples[sampleIndex]);
outputArray.push(theSampler.color);
theSampler.remove()
}
// create arrays of the color values:
var theArray = [[], [], []];
for (var m = 0; m < outputArray.length; m++) {
theArray[0].push(Math.round(outputArray[m].rgb.red));
theArray[1].push(Math.round(outputArray[m].rgb.green));
theArray[2].push(Math.round(outputArray[m].rgb.blue));
};
// create the curves layer;
rgbCurvesLayer ([theArray[0], [0, 128, 255], theArray[1], [0, 128, 255], theArray[2], [0, 128, 255]]);
app.preferences.rulerUnits = originalRulerUnits;
};
////// make rgb curves layer //////
function rgbCurvesLayer (theArray) {
var idpresetKind = stringIDToTypeID( "presetKind" );
var idpresetKindType = stringIDToTypeID( "presetKindType" );
var idChnl = charIDToTypeID( "Chnl" );
var idCrv = charIDToTypeID( "Crv " );
var idCrvA = charIDToTypeID( "CrvA" );
var idAdjL = charIDToTypeID( "AdjL" );
// =======================================================
var desc5 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref2 = new ActionReference();
ref2.putClass( idAdjL );
desc5.putReference( idnull, ref2 );
var idUsng = charIDToTypeID( "Usng" );
var desc6 = new ActionDescriptor();
var idType = charIDToTypeID( "Type" );
var desc7 = new ActionDescriptor();
desc7.putEnumerated( idpresetKind, idpresetKindType, stringIDToTypeID( "presetKindDefault" ) );
desc6.putObject( idType, charIDToTypeID( "Crvs" ), desc7 );
var idAdjL = charIDToTypeID( "AdjL" );
desc5.putObject( idUsng, idAdjL, desc6 );
executeAction( charIDToTypeID( "Mk " ), desc5, DialogModes.NO );
// =======================================================
var desc8 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref3 = new ActionReference();
ref3.putEnumerated( idAdjL, charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
desc8.putReference( idnull, ref3 );
var idT = charIDToTypeID( "T " );
var desc9 = new ActionDescriptor();
desc9.putEnumerated( idpresetKind, idpresetKindType, stringIDToTypeID( "presetKindCustom" ) );
var idAdjs = charIDToTypeID( "Adjs" );
var list1 = new ActionList();
var desc10 = new ActionDescriptor();
var ref4 = new ActionReference();
ref4.putEnumerated( idChnl, idChnl, charIDToTypeID( "Rd " ) );
desc10.putReference( idChnl, ref4 );
var list2 = new ActionList();
// add r points;
for (var m = 0; m < theArray[0].length; m++) {
addCurvePoint (list2, theArray[0][m], theArray[1][m])
};
desc10.putList( idCrv, list2 );
list1.putObject( idCrvA, desc10 );
var desc15 = new ActionDescriptor();
var ref5 = new ActionReference();
ref5.putEnumerated( idChnl, idChnl, charIDToTypeID( "Grn " ) );
desc15.putReference( idChnl, ref5 );
var list3 = new ActionList();
// add g points;
for (var m = 0; m < theArray[2].length; m++) {
addCurvePoint (list3, theArray[2][m], theArray[3][m])
};
desc15.putList( idCrv, list3 );
list1.putObject( idCrvA, desc15 );
var desc20 = new ActionDescriptor();
var ref6 = new ActionReference();
ref6.putEnumerated( idChnl, idChnl, charIDToTypeID( "Bl " ) );
desc20.putReference( idChnl, ref6 );
var list4 = new ActionList();
// add b points;
for (var m = 0; m < theArray[4].length; m++) {
addCurvePoint (list4, theArray[4][m], theArray[5][m])
};
desc20.putList( idCrv, list4 );
list1.putObject( idCrvA, desc20 );
desc9.putList( idAdjs, list1 );
desc8.putObject( idT, charIDToTypeID( "Crvs" ), desc9 );
executeAction( charIDToTypeID( "setd" ), desc8, DialogModes.NO );
//
return app.activeDocument.activeLayer;
////// add curve point //////
function addCurvePoint (theList, valueHor, valueVer) {
var desc11 = new ActionDescriptor();
desc11.putDouble( charIDToTypeID( "Hrzn" ), valueHor );
desc11.putDouble( charIDToTypeID( "Vrtc" ), valueVer );
theList.putObject( charIDToTypeID( "Pnt " ), desc11 );
};
};
... View more
‎Mar 05, 2025
07:51 AM
Please post (lores of) the images you want to edit thusly.
I think the combination of effects involved is a bit much for calling it »one technique« (aside from »collage« as you already did).
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 05, 2025
05:36 AM
1 Upvote
‎Mar 05, 2025
05:36 AM
1 Upvote
Please provide sample images (both the originals and the resulting files).
What does »I need the top down image and the side profile image to be imported into photoshop« mean exactly?
Into what kind of image (dimensions, Color Space, …) do you import the image pairs?
... View more
‎Mar 05, 2025
05:32 AM
What purpose does
selectAllLayers();
serve when you select one Layer afterwards?
Please provide sample files.
Edit: To embedd the original profile I suspect you will not be able to use »Save for Web«.
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 05, 2025
02:11 AM
1 Upvote
‎Mar 05, 2025
02:11 AM
1 Upvote
png also allows for transparency which is impossible in jpg.
... View more
‎Mar 05, 2025
12:10 AM
With a graphic image like this it seems sensible to create Solid Color Layer based on the Channels that offer good separation anyway.
If this is for print it might, provided the effective resolution is high enough, be useful to split it into three bitmap images and assign those the respective colors in the layout application (indesign, Illustrator, …).
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 04, 2025
11:51 PM
1 Upvote
‎Mar 04, 2025
11:51 PM
1 Upvote
Images included.
Please provide the actual images (feel free to lores), not just screenshots.
Why don’t you use Layer Comps?
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 04, 2025
11:27 PM
1 Upvote
‎Mar 04, 2025
11:27 PM
1 Upvote
Please illustrate the whole process, your description seems a bit unclear to me.
What are the other steps in the Action?
... View more
‎Mar 04, 2025
07:45 AM
https://helpx.adobe.com/enterprise/kb/network-endpoints.html
... View more
‎Mar 04, 2025
12:27 AM
Where did you get that code?
Edit: This would work with three Color Samplers.
// 2025, use it at your own risk;
// call the function to run the script;
createCurveAdjustmetFromColorSamplers();
// create a function fo hold most of the code;
function createCurveAdjustmetFromColorSamplers(){
// needs an open document in a color mode that supports layers;
if(app.documents.length == 0 || ( app.activeDocument.mode != DocumentMode.RGB ) ){
alert('This script requires a document in RGB');
return;
}
// check for three colorSamplers
if(app.activeDocument.colorSamplers.length != 3 ){
alert('This script requires three colorSamplers.');
return;
};
// for the bottom layer
var outputArray = new Array();
// store the number of samples because it will be needed in more than one place
var numberOfSamples = app.activeDocument.colorSamplers.length;
// collect the samples from the bottom layer
for(var sampleIndex = 0; sampleIndex < numberOfSamples; sampleIndex++ ){
outputArray.push(app.activeDocument.colorSamplers[sampleIndex].color);
}
// create arrays of the color values:
var theArray = [[], [], []];
for (var m = 0; m < outputArray.length; m++) {
theArray[0].push(Math.round(outputArray[m].rgb.red));
theArray[1].push(Math.round(outputArray[m].rgb.green));
theArray[2].push(Math.round(outputArray[m].rgb.blue));
};
// create the curves layer;
rgbCurvesLayer ([theArray[0], [0, 128, 255], theArray[1], [0, 128, 255], theArray[2], [0, 128, 255]])
};
////// make rgb curves layer //////
function rgbCurvesLayer (theArray) {
var idpresetKind = stringIDToTypeID( "presetKind" );
var idpresetKindType = stringIDToTypeID( "presetKindType" );
var idChnl = charIDToTypeID( "Chnl" );
var idCrv = charIDToTypeID( "Crv " );
var idCrvA = charIDToTypeID( "CrvA" );
var idAdjL = charIDToTypeID( "AdjL" );
// =======================================================
var desc5 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref2 = new ActionReference();
ref2.putClass( idAdjL );
desc5.putReference( idnull, ref2 );
var idUsng = charIDToTypeID( "Usng" );
var desc6 = new ActionDescriptor();
var idType = charIDToTypeID( "Type" );
var desc7 = new ActionDescriptor();
desc7.putEnumerated( idpresetKind, idpresetKindType, stringIDToTypeID( "presetKindDefault" ) );
desc6.putObject( idType, charIDToTypeID( "Crvs" ), desc7 );
var idAdjL = charIDToTypeID( "AdjL" );
desc5.putObject( idUsng, idAdjL, desc6 );
executeAction( charIDToTypeID( "Mk " ), desc5, DialogModes.NO );
// =======================================================
var desc8 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref3 = new ActionReference();
ref3.putEnumerated( idAdjL, charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
desc8.putReference( idnull, ref3 );
var idT = charIDToTypeID( "T " );
var desc9 = new ActionDescriptor();
desc9.putEnumerated( idpresetKind, idpresetKindType, stringIDToTypeID( "presetKindCustom" ) );
var idAdjs = charIDToTypeID( "Adjs" );
var list1 = new ActionList();
var desc10 = new ActionDescriptor();
var ref4 = new ActionReference();
ref4.putEnumerated( idChnl, idChnl, charIDToTypeID( "Rd " ) );
desc10.putReference( idChnl, ref4 );
var list2 = new ActionList();
// add r points;
for (var m = 0; m < theArray[0].length; m++) {
addCurvePoint (list2, theArray[0][m], theArray[1][m])
};
desc10.putList( idCrv, list2 );
list1.putObject( idCrvA, desc10 );
var desc15 = new ActionDescriptor();
var ref5 = new ActionReference();
ref5.putEnumerated( idChnl, idChnl, charIDToTypeID( "Grn " ) );
desc15.putReference( idChnl, ref5 );
var list3 = new ActionList();
// add g points;
for (var m = 0; m < theArray[2].length; m++) {
addCurvePoint (list3, theArray[2][m], theArray[3][m])
};
desc15.putList( idCrv, list3 );
list1.putObject( idCrvA, desc15 );
var desc20 = new ActionDescriptor();
var ref6 = new ActionReference();
ref6.putEnumerated( idChnl, idChnl, charIDToTypeID( "Bl " ) );
desc20.putReference( idChnl, ref6 );
var list4 = new ActionList();
// add b points;
for (var m = 0; m < theArray[4].length; m++) {
addCurvePoint (list4, theArray[4][m], theArray[5][m])
};
desc20.putList( idCrv, list4 );
list1.putObject( idCrvA, desc20 );
desc9.putList( idAdjs, list1 );
desc8.putObject( idT, charIDToTypeID( "Crvs" ), desc9 );
executeAction( charIDToTypeID( "setd" ), desc8, DialogModes.NO );
//
return app.activeDocument.activeLayer;
////// add curve point //////
function addCurvePoint (theList, valueHor, valueVer) {
var desc11 = new ActionDescriptor();
desc11.putDouble( charIDToTypeID( "Hrzn" ), valueHor );
desc11.putDouble( charIDToTypeID( "Vrtc" ), valueVer );
theList.putObject( charIDToTypeID( "Pnt " ), desc11 );
};
};
... View more
‎Mar 03, 2025
11:23 PM
When you are sending data to Adobe servers (for Firefly-processing) that is data on Adobe servers, so guess what? Adobe has to try to make sure they are not involved in illegal activities and therefore needs to check.
That the check is extremely »sensitive« is another issue and hopefully it will be addressed sometime, but who knows?
Did you not figure out a work-around (cover up the person/s in the image with a Solid Color Layer temporarily for example before expanding)?
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 03, 2025
11:15 PM
1 Upvote
‎Mar 03, 2025
11:15 PM
1 Upvote
Could you please post screenshots with the pertinent Panels (Toolbar, Layers, Options Bar, Properties Panel, Contextul Task Bar, …) visible?
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 03, 2025
11:05 PM
2 Upvotes
‎Mar 03, 2025
11:05 PM
2 Upvotes
Could there be any typos or illegal characters in the csv file?
... View more
‎Mar 03, 2025
10:56 PM
Please provide the layered image for testing.
... View more
‎Mar 03, 2025
09:16 AM
Can you post a screen-recording?
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 03, 2025
09:10 AM
2 Upvotes
‎Mar 03, 2025
09:10 AM
2 Upvotes
When you record the action, DO NOT make changes to the folder or filename. if you do, those will be hardcoded into the action and used every time you run it. Which is how you got your file overwritten.
By @ExUSA
I suspect the original poster misunderstood what they actually recorded in the Action, that’s why I asked for the screenshot of the fully expanded Action.
... View more
‎Mar 03, 2025
09:05 AM
I mean the "generative workspace" window. Sometimes - not all the time - it just pops up and interferes with what I'm doing. I have *tried* to use it but it never seems to intuitively fill what I want, so I'd rather just disable it. For example, I wanted to fill in a couch leg that got cut off from the picture, and "generative workspace" gave me an iguana.
Isn’t the Generative Workspace part of Photoshop (Beta) and not of Photoshop?
Could you please post screenshots with the pertinent Panels (Toolbar, Layers, Properties, Options Bar, …) visible to illustrate?
... View more
‎Mar 03, 2025
09:02 AM
Doesn’t seem to be a terribly relevant topic for many of the regulars here.
Maybe you should post on the Bridge Forum.
What is your workflow, how many images are you trying to process, …?
... View more
‎Mar 03, 2025
08:29 AM
Please provide meaningful information, starting with a screenshot of the fully expanded Action in the Actions Panel.
... View more
‎Mar 03, 2025
07:11 AM
Have you tried unchecking Preferences > Tools > »Show Tooltips« and »Show Rich Tooltips«?
If the Selection or any other operation does not correspond to the actual cursor position I would recommend all-purpose trouble-shooting. Restoring Preferences after making sure all customized presets like Actions, Patterns, Brushes etc. have been saved might be a good starting point: https://helpx.adobe.com/photoshop/using/preferences.html https://helpx.adobe.com/photoshop/kb/basic-trouble-shooting-steps.html https://helpx.adobe.com/photoshop/kb/troubleshoot-gpu-graphics-card.html
... View more
‎Mar 03, 2025
03:10 AM
So you are suing the Single Column Marquee Tool? Then what happens exactly?
Could you please post screenshots with the pertinent Panels (Toolbar, Layers, Options Bar, Properties Panel, Contextual Task Bar, …) visible?
... View more
Community Expert
in Photoshop ecosystem Discussions
‎Mar 03, 2025
01:38 AM
1 Upvote
‎Mar 03, 2025
01:38 AM
1 Upvote
The Masking for the two similar images is automatic (Edit > Auto-Blend Layers), the Masking for the dark exposure is manual. (plus a Blend If-setting)
... View more
‎Mar 03, 2025
12:20 AM
I am afraid at current you can either use Classic Gradient or the »new« Gradient (with a work-around like you mentioned).
But it seems there is something that seems like a bug in the »new« Gradient.
If I create a Gradient on the Mask, select the Brush Tool and paint into it, select the Gradient Tool again and edit the Gradient the Brush stroke is simply removed.
... View more