Skip to main content
Participant
December 20, 2021
Answered

Place image without resize

  • December 20, 2021
  • 2 replies
  • 10693 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
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
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 😞

JJMack
Community Expert
Community Expert
December 21, 2021

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  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.

JJMack
Legend
December 20, 2021

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

 

Petr5EFEAuthor
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
Legend
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.