[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bilder innerhalb eines Frames verschieben (CS6, Win7)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Bilder innerhalb eines Frames verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1139

26. Okt 2013, 14:07
Beitrag # 1 von 9
Bewertung:
(2384 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich würde gerne alle Bilder im Dokument innerhalb des Rahmens wieder auf Null (oben links) verschieben.

Folgender Scriptschnipsel zeigt mir für das Bild und für den Frame aber beidesmal identische Werte an:

Code
var link, image, frame; 
var doc = app.activeDocument;
var graphics = doc.allGraphics;

for (var i = 0; i < graphics.length; i++) {
link = graphics[i].itemLink;
image = link.parent;
frame = image.parent;
alert( image.geometricBounds + '\r'+ frame.geometricBounds);

}


Wenn ich aber mit dem Direktauswahlwerkzeug das Bild markiere, habe ich x=y=0, egal an welcher Stelle auf
der Seite das Bild steht.

Wie bekomme ich Bilder, die innerhalb eines Rahmens verschoben wurden, wieder auf Null?

Bitte um Hilfe
Gruss
Christoph
X

Bilder innerhalb eines Frames verschieben (CS6, Win7)

Gerald Singelmann
  
Beiträge gesamt: 6269

26. Okt 2013, 17:26
Beitrag # 2 von 9
Beitrag ID: #518975
Bewertung:
(2355 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Wenn ich aber mit dem Direktauswahlwerkzeug das Bild markiere, habe ich x=y=0, egal an welcher Stelle auf der Seite das Bild steht.

Wie bekomme ich Bilder, die innerhalb eines Rahmens verschoben wurden, wieder auf Null?


Mit anderen Worten: Die Bilder stehen bereits alle auf 0 und wie bekomme ich sie jetzt auf 0?

Ich glaub, ich verstehe die Frage nicht.


als Antwort auf: [#518973]
Anhang:
Bildschirmfoto 2013-10-26 um 17.25.08.png (67.0 KB)

Bilder innerhalb eines Frames verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1139

26. Okt 2013, 17:44
Beitrag # 3 von 9
Beitrag ID: #518978
Bewertung:
(2345 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Gerald Singelmann,

ja es geht um den Inhaltsversatz.
Ich habe zur Verdeutlichung noch zwei Doks angehängt.

Gruss
Christoph


als Antwort auf: [#518975]
Anhang:
Bilder_verschieben_vorher.idml (27.6 KB)   Bilder_verschieben_nachher.idml (27.5 KB)

Bilder innerhalb eines Frames verschieben (CS6, Win7)

Hans Haesler
  
Beiträge gesamt: 5826

26. Okt 2013, 22:46
Beitrag # 4 von 9
Beitrag ID: #518982
Bewertung:
(2297 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

so sollte es klappen:

Code
var doc = app.activeDocument; 
var graphics = doc.allGraphics;

for (var g=0; g<graphics.length; g++) {
var curImage = graphics[g];
var curFrame = curImage.parent;
var igB = curImage.geometricBounds;
var fgB = curFrame.geometricBounds;
curImage.move(undefined, [fgB[1]-igB[1], fgB[0]-igB[0]]);
}

Vorausgesetzt, dass alle Drehwinkel (Rahmen und Bilder) null Prozent betragen.
Und dass kein Rahmen gesperrt ist.

Gruss, Hans


als Antwort auf: [#518978]

Bilder innerhalb eines Frames verschieben (CS6, Win7)

Gerald Singelmann
  
Beiträge gesamt: 6269

27. Okt 2013, 00:29
Beitrag # 5 von 9
Beitrag ID: #518984
Bewertung:
(2277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Müste nicht auch
Code
curImage.move([fgB[1], fgB[0]]); 

gehen?


als Antwort auf: [#518982]

Bilder innerhalb eines Frames verschieben (CS6, Win7)

Hans Haesler
  
Beiträge gesamt: 5826

27. Okt 2013, 06:40
Beitrag # 6 von 9
Beitrag ID: #518986
Bewertung:
(2231 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

doch, das geht auch. :-)

Erklärung für Christoph: Das aktuelle Bild wird nicht um die Differenz verschoben, sondern an die Position des Bildrahmens.

Der Vollständigkeit halber der zusammengeschmolzene Code:

Code
var doc = app.activeDocument; 
var graphics = doc.allGraphics;

for (var g=0; g<graphics.length; g++) {
var gB = graphics[g].parent.geometricBounds;
graphics[g].move([gB[1], gB[0]]);
}

Gruss, Hans


als Antwort auf: [#518984]

Bilder innerhalb eines Frames verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1139

27. Okt 2013, 07:46
Beitrag # 7 von 9
Beitrag ID: #518987
Bewertung:
(2218 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Merci viel mal,

an Gerald und Hans.
Klappt prima.
Danke auch für die Erklärung, Hans.

Schönen Tag wünscht
Christoph


als Antwort auf: [#518986]

Bilder innerhalb eines Frames verschieben (CS6, Win7)

Hans Haesler
  
Beiträge gesamt: 5826

27. Okt 2013, 09:25
Beitrag # 8 von 9
Beitrag ID: #518988
Bewertung:
(2173 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

bitte sehr. Die Erklärung hätte detaillierter sein können ...

Zitat void move ([to: varies][, by: Array of Measurement Unit (Number or String)])
Moves the PageItem to a new location. Note: Either the 'to' or 'by' parameter is required; if both parameters are defined, only the to value is used.

to The new location of the PageItem, in the format (x, y). Can accept: Array of 2 Units, Spread, Page or Layer. (Optional)
by The amount (in measurement units) to move the PageItem relative to its current position, in the format (x, y). (Optional)

Das Objekt wird an die neue Position verschoben. 'void' bedeutet, dass die Aktion kein Ergebnis zurückgibt.

Für to (= an diese Position) kann ein Array mit zwei Masseinheit-Elementen (Zahlen oder String) eingefügt werden. Oder ein Druckbogen oder eine Seite oder eine Ebene.
Für by (= um diese Werte, von der aktuellen Position ausgehend) gilt: ein Array mit zwei Masseinheit-Elementen (Zahlen oder String).

Einer der beiden Parameter muss definiert sein. Wenn man by verwenden will, muss to als undefined gesetzt werden:

Code
curItem.move(undefined, [x, y]); 

Zu beachten: Der horizontale Wert kommt zuerst.

Gruss, Hans


als Antwort auf: [#518987]

Bilder innerhalb eines Frames verschieben (CS6, Win7)

cwenet
Beiträge gesamt: 1139

27. Okt 2013, 09:31
Beitrag # 9 von 9
Beitrag ID: #518989
Bewertung:
(2167 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

vielen lieben Dank. Das speichere ich mir gleich zum Script dazu.

Schönen Sonntag
Christoph


als Antwort auf: [#518988]
X