Automatyczna obróbka fotografii

18.07 ‘12



Czasem pojawia się potrzeba obrobienia ogromnej ilości zdjęć w celu wykonania określonej czynności – np. stworzenia miniatury o określonych rozmiarach.

Robienie tego ręcznie jest strasznym marnotrawieniem czasu.
Z pomocą przychodzi Adobe Scripting.

Niemal wszystkie produkty Adobe posiadają możliwość pisania własnych skryptów opartych o AppleScript, JavaScript czy VBScript.

Dzięki dokumentacji języka JavaScript dla programu Adobe Photoshop (Photoshop JavaScript Reference) możemy bardzo szybko stworzyć skrypt, który wykona za nas całą pracę..

var thumbnailWidth = 120;
var thumbnailHeight = 120;
var originalRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
var inputFolder = Folder.selectDialog( "Select a folder to process" );
var imageList = inputFolder.getFiles( /\.(jpg|png)$/i );
for ( var i = 0; i < imageList.length; i++ )
{
file = imageList[ i ];
open( file );
document = app.activeDocument;
document.changeMode( ChangeMode.RGB );
var documentWidth = UnitValue( document.width, "px" );
var documentHeight = UnitValue( document.height, "px" );
var documentRatio = documentWidth / documentHeight;
var thumbnailRatio = thumbnailWidth / thumbnailHeight;
if ( documentRatio >= thumbnailRatio )
{
document.resizeImage(
null,
UnitValue( thumbnailHeight, "px" ),
null,
ResampleMethod.BICUBIC
);
}
else
{
document.resizeImage(
UnitValue( thumbnailWidth, "px" ),
null,
null,
ResampleMethod.BICUBIC
);
}
var thumbnailX = 0.5 * ( document.width - thumbnailWidth );
var thumbnailY = 0.5 * ( document.height - thumbnailHeight );
var bounds = new Array(
thumbnailX,
thumbnailY,
document.width - thumbnailX,
document.height - thumbnailY
);
document.crop( bounds, 0, thumbnailWidth, thumbnailHeight );
var exportOptions = new ExportOptionsSaveForWeb();
exportOptions.quality = 50;
exportOptions.format = SaveDocumentType.JPEG;
exportOptions.optimized = true;
// Get document name (and remove file extension).
var filename = document.name.substr(
0,
document.name.lastIndexOf( '.' )
) || document.name;
var newName = filename + '.jpg';
var documentPath = document.path;
// Save for web filename issues.
if ( filename.length > 27 )
{
file = new File( document.path + '/temp_file.jpg' );
document.exportDocument(
file,
ExportType.SAVEFORWEB,
exportOptions
);
file.rename( newName ); // Restore original filename.
}
else
{
document.exportDocument(
File( document.path + '/' + newName ),
ExportType.SAVEFORWEB,
exportOptions
);
}
document.close( SaveOptions.DONOTSAVECHANGES );
}
preferences.rulerUnits = originalRulerUnits;

Uruchomienie skryptu w Photoshopie polega na wybraniu z menu komendy „Browse” ( „File” > „Scripts” ) i wskazanie skryptu z dysku.

Szymon Piotr Pepliński

Szymon Piotr
Pepliński

Head of Innovation