Copy link to clipboard
Copied
Hi, I have:
unchcecked: Resize image during place
I want to drag and drop image to my document without any resizing or creating any smart objects or whatever. I just want to drag and drop image and retain its full resolution.
But when I place image it gets scaled down a lot. This is extremely annoying behavior.
I think when I drag and drop image to PS, all it should do is drop this image to current document under cursor and that is it. No scaling, no smart objects (if I have it turned off in settings), no nothing.
If I want something automatically happened to images, then I can make actions or something, but I can't undo resize, when placing image.
AND yes, I know, I can paste this image to another tab a coop paste to my document, but why would I want to do this for 10, 20, 50 images I need to use in my main document?
2 Correct answers
Copy And Paste doe nos do any scalin. Place is designed to scale the File Image being Place id the Image File has a Print resolution the the Docuumeny it is beinf Place into. Its is strange and can noe be disabled. The Scaling is a Place feature Adobe feals the uset should want.
1. Will turn off the interactive Transform UI the Layer will still be scaled when there is a Resolution missmatch.
2. If the smart object layer is larger then the Canvas Place will scale the Layer Pixels to fi
...
Sadly JJMack is no longer with us.
All of this is being discussed in the following topic:
Explore related tutorials & articles
Copy link to clipboard
Copied
It works as you describe wanting with the following settings in Preferences > General...
Copy link to clipboard
Copied
It does not. If you agree that it should, then you have bug in application. And I did some googling and you can find similar problem spannig several years.
Copy link to clipboard
Copied
Unfortunately, this is behaving "as expected." You're probably placing an image with a different pixel res and Ps is placing based on physical dimensions. This wouldn't be the end of the world, except that it's being placed at 100% in the options bar even though it's actually been scaled and you have no way of knowing what the real 100% should be. This needs to be changed and i've brought it up over and over, but no one at Adobe seems to understand of big of a problem it actually is.
Copy link to clipboard
Copied
This needs to be changed and i've brought it up over and over, but no one at Adobe seems to understand of big of a problem it actually is.
By Earth Oliver
A big part of the whole purpose of smart objects is compatibility with vector data and Illustrator. It's hard to imagine how you could have an .ai smart object in Photoshop if it was all based on pixels.
I agree that inside Photoshop, it's a bit counter-intuitive to start thinking in terms of sizes instead of pixels. It's against all our instincts. But that's how it has to be, those are the rules. As long as you're aware of it, it's not a problem. Basically, just make sure the ppi numbers match.
Pixels can be translated into sizes through the ppi number. The reverse is not possible for pure vector data.
Copy link to clipboard
Copied
the problem is that you can have a SO which is placed at 100% that is not 100%. All that's needed here is to implement the transform amount in the options bar.
Copy link to clipboard
Copied
OK, that's a fair point - but again, that would only apply to pixel smart objects, not vector smart objects. So it would be inconsistent.
I get what you're saying. I do most of my work in Photoshop and Lightroom, and pixels is in my blood. I count everything in pixels. But at the same time I also think consistency is crucial. There has to be rules, that makes it easier for everyone to deal with.
And as I said, there is a very simple way to avoid the problem entirely: make sure the ppi numbers match.
Copy link to clipboard
Copied
Jeff, this is probably that annoying and non-sensical behavior of mis-matched resolutions being 'invisibly' scaled when placing. My request was that the scaling amount is visible in the options bar when this happens, but no one seems to care very much about this issue.
Copy link to clipboard
Copied
Make sure that the current Active Document resolution setting is the same as the Image File's Print resolution that you are placing in. Place will scale the smart object layer up or down in size if the Resolution are not the same. Instead menu File>Place Embedded... with the following script you could try menu File>Scripts>placeImageNoDegrade....
You can also open the Image In Photoshop and do a select all Copy Merge to Clipboard and Paste into other document. Copy/Paste, Dragging Layers will not create a smart object layer you will get your Image in as a new Raster layer. Adobe feels that Place's Scaling makes Photoshop more or less like their vector program AI. Other find the scaling strange. In Any case Place creates the Smart Object hardened pixels correctly with your image actual pixels. then scale the layer. Smart object Layers are very useful.... Place is just odd.
PlaceNoDegrade.jsx
// June 2019 John J. McAssey (JJMack)
// This attempt to add an Additional Photoshop Place Embedded No Degrade feature under menu file scripts listed under Image Processor
// File>Scripts>placeImageNoDegrade... Embedded Image without a Degrading Resizing based on file print DPI setting.
// The Photoshop Preferences Resize During Place if set will scale large object to be scaled to fit on canvas
// The function placeImageNoDegrade(file) is designed for use in scripts to place in image files a default size and not lose image quality.
// This Script supports PSD, Tiff, Jpeg, PNG and Camera Raw file placement. However, Camera RAW files have no print DPI
// for they are not printable. This script assumes your default Camera RAW work-flow conversion is to a 300DPI resolution
// The following Image Filetype are not supported for Photoshop support is not what it should be IMO or the file poor or to large to embed
// or are not commonly used by me.: PSB SVG AI BMP GIF EPS PDF DCS DICOM IFF Jpeg2000 PCX PDF Pixar PBM Targa etc...
// This script is supplied as is. It is provided as freeware.
// The author accepts no liability for any problems arising from its use.
/* Help ]
<javascriptresource>
<name>$$$/JavaScripts/placeImageNoDegrade/Menu=placeImageNoDegrade...</name>
<about>JJMack's placeImageNoDegrade Copyright 2019 Mouseprints Place without degrading image quality</about>
<category>aaaThisPutsMeAtTheTopOfTheMenu</category>
<enableinfo>true</enableinfo>
</javascriptresource>
*/
if (!documents.length) alert('There are no documents open.', 'No Document');
else {
if (!CheckVersion(13)) { alert("Photoshop version CS6+ is required.")}
else {
var imageFile;
imageFile = selectFile ();
if (imageFile==null) alert("No Image Files Selected", 'Cancelled');
else if (!imageFile.name.match(/\.(crw|nef|raf|orf|mrw|dcr|mos|raw|pef|srf|dng|x3f|cr3|cr2|erf|sr2|kdc|mfw|arw|nrw|rw2|rwl|iiq|3fr|fff|srw|gpr|dxo|heic|arq|cr3|psd|psb|jpg|jpe|jpeg|png)$/i) ) alert(imageFile.name, 'Not a Supported Image Filetype');
else placeImageNoDegrade(imageFile);
}
}
//////////////////////////////////////////////////////////////////////////////////
// Helper Functions //
//////////////////////////////////////////////////////////////////////////////////
function CheckVersion(PSV) {
var numberArray = version.split(".");
if ( numberArray[0] < PSV ) { return false; }
return true;
}
function selectFile (multi) {
if (multi == true) {var theString = "please select Image files"}
else {var theString = "please select one image file"};
if ($.os.search(/windows/i) != -1) {var theFiles = File.openDialog (theString, '*.crw;*.nef;*.raf;*.orf;*.mrw;*.dcr;*.mos;*.raw;*.pef;*.srf;*.dng;*.x3f;*.CR3;*.cr2;*.erf;*.sr2;*.kdc;*.mfw;*.arw;*.nrw;*.rw2;*.rwl;iiq;*.3fr;*.fff;*.srw;*.gpr;*.dxo;*.heic;*.arq;*.cr3;*.psd;*.psb;*.tif;*.tiff;*.jpg;*.jpe;*.jpeg;*.png', multi)}
else {var theFiles = File.openDialog (theString, getFiles, multi)}; ////// filter files for mac //////
function getFiles (theFile) {
if (theFile.name.match(/\.(crw|nef|raf|orf|mrw|dcr|mos|raw|pef|srf|dng|x3f|cr3|cr2|erf|sr2|kdc|mfw|arw|nrw|rw2|rwl|iiq|3fr|fff|srw|gpr|dxo|heic|arq|cr3|psd|psb|tif|tiff|jpg|jpe|jpeg|png)$/i) || theFile.constructor.name == "Folder") return true;
};
return theFiles
};
function placeImageNoDegrade(file) {
var orig_resolution = app.activeDocument.resolution; // Get document Resolution (Read only change via image resize)
var orig_ruler_units = app.preferences.rulerUnits; // Save Units
app.preferences.rulerUnits = Units.PIXELS; // Set the ruler units to PIXELS
// Thanks to SuperMerlin gets image Files Print resolution
if (file.name.match(/\.(crw|nef|raf|orf|mrw|dcr|mos|raw|pef|srf|dng|x3f|cr3|cr2|erf|sr2|kdc|mfw|arw|nrw|rw2|rwl|iiq|3fr|fff|srw|gpr|dxo|heic|arq|cr3)$/i)) printDPI= 300;
else {
if ( !ExternalObject.AdobeXMPScript ) ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
var xmpf = new XMPFile( File(file).fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ );
var xmp = xmpf.getXMP();
if(xmp.doesPropertyExist(XMPConst.NS_TIFF, "XResolution")){
var res = xmp.getProperty(XMPConst.NS_TIFF, "XResolution");
res = res.toString().split("/");
printDPI= res[0]/res[1]
}
else printDPI= 72;
}
if(orig_resolution!=printDPI) app.activeDocument.resizeImage(null, null, printDPI, ResampleMethod.NONE);
// Place in the file
var idPlc = charIDToTypeID( "Plc " );
var desc5 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
desc5.putPath( idnull, new File( file ) );
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsa = charIDToTypeID( "Qcsa" );
desc5.putEnumerated( idFTcs, idQCSt, idQcsa );
var idOfst = charIDToTypeID( "Ofst" );
var desc6 = new ActionDescriptor();
var idHrzn = charIDToTypeID( "Hrzn" );
var idPxl = charIDToTypeID( "#Pxl" );
desc6.putUnitDouble( idHrzn, idPxl, 0.000000 );
var idVrtc = charIDToTypeID( "Vrtc" );
var idPxl = charIDToTypeID( "#Pxl" );
desc6.putUnitDouble( idVrtc, idPxl, 0.000000 );
var idOfst = charIDToTypeID( "Ofst" );
desc5.putObject( idOfst, idOfst, desc6 );
executeAction( idPlc, desc5, DialogModes.NO );
if(orig_resolution!=printDPI) app.activeDocument.resizeImage(null, null, orig_resolution, ResampleMethod.NONE);
app.preferences.rulerUnits = orig_ruler_units; // Reset units to original settings
return app.activeDocument.activeLayer;
}
Copy link to clipboard
Copied
Thank you sir, I will give it a try.
However still... such simple task ask drag and drop that should clearly result in just regular layer with imaged not scaled, processed or whatever. I would expect that application, that is decades on market would at least give me that option 😞
Copy link to clipboard
Copied
For most of the users settings as they are works best. Nobody can't make perfect application. Agree, it will be nice to have option like "place pixels" which works same as when copy/paste image from another open document. Look for feature request and vote or create new feature request to implement feature.
Copy link to clipboard
Copied
It wouldn't be a big deal if the scaling amount was visible in the options bar, but for some bizarre reason, it's placed at "100%" even though it's not 100%.
Copy link to clipboard
Copied
It depends on what you drag and drop and how you configure Photoshop. dragging normals layer between documents dose not create smart object layers the layers are duplicated and there is no scaling. There are Photoshop Preferences the effect how Place works. IMO you always want Place to create Smart Object layers. However there no way to disable Place Resolution mismatch scaling you need to match the resolutions before placing in the image file. That is what my script does. It changes the document Print resolution to match the files print resolution without resampling the document. The the script places in the Image file. After the Smart object layer is created without being scaled the document resolution is changed back to what it was again without resampling the document. Your image's actual pixels as a smart object layer pixels you are still free the scale the smart object for it use in the document composition. It the same object Place create in any case. If you scale the smart object layer you are scaling the smart object harden copy of you images pixels Photoshop rendered for your image file. It make no difference when you scale a smart object layers you are scaling from the Pixels Photoshop rendered for you image. It is just that one does not expect Place to scale the image when Resize during Place is not checked. That is a Different scaling setting. If the Smart object created does not fit on the document that Photoshop preference will cause Place to fit the smart object layer on canvas, Place scale the smart object layer to fit on canvas. The wording confuses users they doe not realize Place may do two scaling. In All cases the Smart Object created is your Image. It drove me up the wall when I first scripted using Place. Place seemed inconsistent till I figured out what Adobe was doing.
Copy link to clipboard
Copied
I found a really nasty SO bug last year where the placed files were being rasterized at the mis-matched placed size within the SO! It was kind of a nightmare scenario that had gone unseen for a while and has thankfully now been fixed. The worst part was that the bad code had been ported over to the iPad as well. Whoops.
Copy link to clipboard
Copied
They are not rasterized the layer pixels are scale via interpolation of the Hardened Smart object rendered pixels. Smart object layer pixels are created via interpolation like raster layers except for Vector Smart Object (AI vector file) these are basically re-imported using vector graphics at the changed size. Smart object are working as designed. The Resolution Scaling is Adobe Idea of making Smart object more like AI. IMO it makes Place look inconsistent. Particularly when place shows that the scaled resolution size as being 100% when it is not. However in a script you can use that size as 100% size and calculate the percentage to make the layer the size you need by calculating the percentage you need to use with a resizing transform. It work for me in my collage populating scripts. When I need to resize a smart Object image layer to fill some size area mapped by an Alpha Channel Image number. The resolution Scaling Place does is strange for sure.
Copy link to clipboard
Copied
No, JJ, it was definitely a bug i found, documented, and then Adobe fixed a few months back. The contents of SO's were being rasterized at the wrong size within the SO container.
Here are my steps to repro, but it was patched in June 2021. You're welcome to test in earlier version if you want to verify...
Steps to Reproduce:
1. open any image, but something with decent res like 2000px
2. image size and change res to 100 without resampling
3. save as 'name100'
4. duplicate image to new doc
5. save as 'name300'
6. image size and res to 300 without resample
7. copy/paste layer to name100
8. set layer to difference: result should be pure black
9. file>place>smart object (either)
10. scale to 300%
11. compare to both layers below
Actual Result: It appears that the contents of the SO are scaled down and interpolated prior to the file being placed and when res'd up, you'll see artifacts and blurring.
Copy link to clipboard
Copied
Copy And Paste doe nos do any scalin. Place is designed to scale the File Image being Place id the Image File has a Print resolution the the Docuumeny it is beinf Place into. Its is strange and can noe be disabled. The Scaling is a Place feature Adobe feals the uset should want.
1. Will turn off the interactive Transform UI the Layer will still be scaled when there is a Resolution missmatch.
2. If the smart object layer is larger then the Canvas Place will scale the Layer Pixels to fit on canvas
3. If you do not create a smart object the scaling done by Place will have degraded your Image, If you have place create a smart object the object pixels will be your Images Pixels and you can recover your Images Pixels by scaling the Smart object Layer the have the numbers of Pixels you Smart Object and your image has.
Like you at first I thought that this was a bad bug that Place was inconsistent. However doing what you have posted made me realize the Place was actually consistent that Adobe built into Place this stupidity scaling thinking it was making Place more liked how AI handle vector editing. Even though Photoshop is a Pixel editor. Many do not like that Place was implement with this scaling of object built in. The only was to avoid this Resolution mismatch Scaling it to eliminate the the mismatch via script like the one I posted.
The step you posted demonstrate the Scaling that Adobe has implemented in Place. You force Place to scale by miss matching the two resolutions.
Copy link to clipboard
Copied
I checked #1 (skip transform when placing)
Unchecked #2 and #3 (resize image during place, always create smart objects)
When I drag and drop a 72dpi image into my 300dpi it scales it way up... makes the pixels blurry. But when I drag into it's own tab, select all and paste into my 300dpi image it is scaled properly to the pixel count.
Now I've been using photoshop for 20 years and dragging and dropping an image used to default to being a layer and would match the pixel count of the destination image without scaling up and down. This behavior appears to be impossible with newer versions of photoshop. I'm using 2024.
Copy link to clipboard
Copied
Sadly JJMack is no longer with us.
All of this is being discussed in the following topic:

