Skip to main content
New Participant
December 20, 2021
Answered

Place image without resize

  • December 20, 2021
  • 2 replies
  • 10615 views

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?

This topic has been closed for replies.
Correct answer Stephen Marsh

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.


@GolferDJ 

 

Sadly JJMack is no longer with us.

 

All of this is being discussed in the following topic:

 

https://community.adobe.com/t5/photoshop-ecosystem-discussions/wrong-image-size-when-placing/td-p/4487627

 

2 replies

JJMack
Community Expert
December 20, 2021

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;
}			 

 

 

 

 

JJMack
Petr5EFEAuthor
New Participant
December 20, 2021

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 😞

Earth Oliver
Brainiac
December 21, 2021

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.


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.

Brainiac
December 20, 2021

It works as you describe wanting with the following settings in Preferences > General...

 

Petr5EFEAuthor
New Participant
December 20, 2021

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.

Earth Oliver
Brainiac
December 20, 2021

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.