Copy link to clipboard
Copied
I would like Adobe to Add the Ability to FLIP an Image in Bridge (X Axis).
With the ability to flip on the X Axis, one can view their image in Any Orientation. I have been using Photoshop since version 2.2. I teach Digital Photography and Photoshop at a community college in Maryland. When I am going through my images in the Bridge, I NEED the ability to Flip an image, so I Don't have to open it in Photoshop or Lightroom because I use the slideshow to view the Final Images. I always tell my student that "when Adobe upgrades their programs, it's Always an Amazing Upgrade". For instance, when the stamp tool showed what is on your brush, I immediately upgraded my Photoshop program.
Thank you for your consideration,
Thomas Berault
Professor of Art
Prince George's Community College
1 Correct answer
This can be handled with a script.
//©2018-2021 David M. Converse
if(BridgeTalk.appName == "bridge"){
var flipCmd = new MenuElement("command", "Flip", "at the end of Tools");
}
flipCmd.onSelect = function (){
flip();
}
function flip(){
var fPalette = new Window('palette', 'Flip', undefined, {closeButton:true});
fPalette.preferredSize = [200, 160];
fPalette.frameLocation = [100, 100];
var fpnl = fPalette.add('panel', [10,10,150,120]);
fpnl.fBtn = fpnl.add('button', [15, 25, 130, 45], 'Vertical');
fpnl.fBtn
Copy link to clipboard
Copied
Hi Thomas,
Interesting idea, but I do not think this is in Bridge's capability.
When you rotate an image, you are only changing the metadata of which way is up, nothing more. When you flip an image, you are actually changing the layout of the pixels and that's not within the payscale for Bridge: such action requries actual manipulation of the pixels.
But maybe the folks at Adob could get around that and that's beyond my payscale. Here's a much better place to leave your idea(s), this forum is mostly for helping folks with issues and almost no one from Adobe prowels through these halls anyway.
Here ya go:
https://adobebridge.uservoice.com
Good luck!
Copy link to clipboard
Copied
This can be handled with a script.
//©2018-2021 David M. Converse
if(BridgeTalk.appName == "bridge"){
var flipCmd = new MenuElement("command", "Flip", "at the end of Tools");
}
flipCmd.onSelect = function (){
flip();
}
function flip(){
var fPalette = new Window('palette', 'Flip', undefined, {closeButton:true});
fPalette.preferredSize = [200, 160];
fPalette.frameLocation = [100, 100];
var fpnl = fPalette.add('panel', [10,10,150,120]);
fpnl.fBtn = fpnl.add('button', [15, 25, 130, 45], 'Vertical');
fpnl.fBtn2 = fpnl.add('button', [15, 70, 130, 90], 'Horizontal');
var dir = "v"
fPalette.show();
fpnl.fBtn.onClick = function(){
dir = "v";
meta();
}
fpnl.fBtn2.onClick = function(){
dir = "h";
meta();
}
function meta(){
var thumbs = app.document.selections; //("cr2, nef, arw");
var counter = "";
if(thumbs.length != 0){
if (ExternalObject.AdobeXMPScript == undefined) ExternalObject.AdobeXMPScript = new ExternalObject("lib:AdobeXMPScript");
for(var i = 0;i < thumbs.length;i++){
try{
if(thumbs[i].spec instanceof File && thumbs[i].hasMetadata){
var thumb = thumbs[i];
var xmp = new XMPMeta(thumb.synchronousMetadata.serialize());
var oldOr = xmp.getProperty(XMPConst.NS_TIFF, "Orientation");
var newor = 1;
if(dir == "v"){
switch(oldOr.value){
case "1":
newor = 2;
break;
case "2":
newor = 1;
break;
case "3":
newor = 4;
break;
case "4":
newor = 3;
break;
case "5":
newor = 6;
break;
case "6":
newor = 5;
break;
case "7":
newor = 8;
break;
case "8":
newor = 7;
}
}
if(dir == "h"){
switch(oldOr.value){
case "1":
newor = 4;
break;
case "2":
newor = 3;
break;
case "3":
newor = 2;
break;
case "4":
newor = 1;
break;
case "5":
newor = 8;
break;
case "6":
newor = 7;
break;
case "7":
newor = 6;
break;
case "8":
newor = 5;
}
}
xmp.setProperty(XMPConst.NS_TIFF, "Orientation", newor);
var updatedPacket = xmp.serialize(XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER | XMPConst.SERIALIZE_USE_COMPACT_FORMAT);
thumb.metadata = new Metadata(updatedPacket);
}
}
catch(e){
}
}
}
}
}
Copy link to clipboard
Copied
I would also like to have this feature. Adobe Bridge can rotate files so it should also be able to flip them would useful. I think being able to preview a gray scale version would be great as well. Ive seen other apps do this aswell.
On the side note the script Lumigraphics made does the trick. I dont know how but this is quit amazing and I appreciate your efforts. Adobe should hire you if they havent already !
Copy link to clipboard
Copied
Hi Corey, rotation and flip are metadata entries. Bridge excels at metadata editing.
Here is an old script to remove any orientation metadata without affecting other metadata:
/*
Remove Rotation Metadata.jsx
Based on:
https://forums.adobe.com/thread/290238
https://forums.adobe.com/message/1115698#1115698
*/
#target bridge
removeRotationMeta = {}; // create an object
removeRotationMeta.execute = function () { // create a method for that object
var sels = app.document.selections; // store the array of selected files
for (var i = 0; i < sels.length; i++) { // loop though that array
var md = sels[i].synchronousMetadata; // get the metadata for the file
md.namespace = "http://ns.adobe.com/tiff/1.0/"; // set the namespace
md.Orientation = ""; // clear the rotation property
}
}
// this script only works in bridge
if (BridgeTalk.appName == "bridge") {
//create the munu item
var menu = MenuElement.create("command", "Remove Rotation Metadata", "at the end of Tools");
menu.onSelect = removeRotationMeta.execute;
}
It is then easy enough to hack it for vertical flip:
/*
Set Rotation Orientation Flip Vertical.jsx
Based on:
https://forums.adobe.com/thread/290238
https://forums.adobe.com/message/1115698#1115698
*/
#target bridge
setFlipVertical = {}; // create an object
setFlipVertical.execute = function () { // create a method for that object
var sels = app.document.selections; // store the array of selected files
for (var i = 0; i < sels.length; i++) { // loop though that array
var md = sels[i].synchronousMetadata; // get the metadata for the file
md.namespace = "http://ns.adobe.com/tiff/1.0/"; // set the namespace
md.Orientation = "4"; // vertical
}
}
// this script only works in bridge
if (BridgeTalk.appName == "bridge") {
//create the munu item
var menu = MenuElement.create("command", "Set Rotation Orientation Metadata - Flip Vertical", "at the end of Tools");
menu.onSelect = setFlipVertical.execute;
}
Or horizontal flip:
/*
Set Rotation Orientation Flip Horizontal.jsx
Based on:
https://forums.adobe.com/thread/290238
https://forums.adobe.com/message/1115698#1115698
*/
#target bridge
setFlipHorizontal = {}; // create an object
setFlipHorizontal.execute = function () { // create a method for that object
var sels = app.document.selections; // store the array of selected files
for (var i = 0; i < sels.length; i++) { // loop though that array
var md = sels[i].synchronousMetadata; // get the metadata for the file
md.namespace = "http://ns.adobe.com/tiff/1.0/"; // set the namespace
md.Orientation = "2"; // horizontal
}
}
// this script only works in bridge
if (BridgeTalk.appName == "bridge") {
//create the munu item
var menu = MenuElement.create("command", "Set Rotation Orientation Metadata - Flip Horizontal", "at the end of Tools");
menu.onSelect = setFlipHorizontal.execute;
}
Copy link to clipboard
Copied
Hi Stephen thank you for the post. Im not super keen on scripting. Would I copy and paste all the pieces you posted into a single text file?
Copy link to clipboard
Copied
There are three separate scripts, so three separate text files. All is explained here:
https://prepression.blogspot.com/2017/11/downloading-and-installing-adobe-scripts.html
Also take a look at the script from Lumigraphics.
Copy link to clipboard
Copied
@Lumigraphics – thank you for sharing!
Copy link to clipboard
Copied
If there are scripts out there, why haven't these been incorporated into the program by now??? Flipping horizontal or vertical is critical to my work, and clients don't have the budget to run thru Lightroom just for a horizontal flip. (Lightroom has too much file overhead for such a simple job.)
You can rotate all day long in Lightroom and it changes the metadata in the photo by default. Why can't we flip?

