[GastForen Programme Print/Bildbearbeitung Adobe InDesign Objekt mit bestimmter Farbe suchen

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

Objekt mit bestimmter Farbe suchen

neo
Beiträge gesamt: 28

17. Jan 2006, 14:23
Beitrag # 1 von 28
Bewertung:
(9264 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo zusammen
ich arbeite mit osx und indesign cs.
in den farbfeldern habe ich bestimmte farben definiert und benamst.
wie kann ich nun alle objekte finden, denen ich eine dieser farben zugeordnet habe.
in illustrator funktionierts mit auswahl | gleich | flächenfarbe

hilfe (oder scripts) sind willkommen ;-)

danke
X

Objekt mit bestimmter Farbe suchen

Martin Fischer
  
Beiträge gesamt: 12714

17. Jan 2006, 15:59
Beitrag # 2 von 28
Beitrag ID: #205399
Bewertung:
(9245 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das geht nur - wenn überhaupt - über Skript.
Allerdings gibt es viele unterschiedliche Objekte, in denen eine gesuchte Farbe drinstecken kann: Textfarbe + -kontur, Textrahmen + -kontur, Graphikrahmen + -kontur.
Und per Skript wäre es m.W. nur möglich, Objekte derselben Gattung gleichzeitig auszuwählen.
Es sei denn, Du wolltest die Farbe wechseln.
Da wäre in einen Skript nach und nach möglich.

Ich fürchte aber, Du hast mit der Auswahl etwas anderes vor.


als Antwort auf: [#205367]

Objekt mit bestimmter Farbe suchen

Fukerider
Beiträge gesamt: 7

17. Jan 2006, 16:45
Beitrag # 3 von 28
Beitrag ID: #205416
Bewertung:
(9226 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo neo,

keine Lösung, aber ein kleiner Workaround: definiere die zu suchende Farbe vorübergehend als Volltonfarbe. InDesign bietet Dir im Palettenmenü eine Farbauszugspalette - hier kannst Du alle anderen Farben wegschalten und Dir Seite für Seite die Volltonfarbe anzeigen lassen ...

Mit freundlichen Grüßen
Klaus


als Antwort auf: [#205367]

Objekt mit bestimmter Farbe suchen

Heike Burch
Beiträge gesamt: 1241

17. Jan 2006, 20:03
Beitrag # 4 von 28
Beitrag ID: #205450
Bewertung:
(9210 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
was genau willst du denn machen, wenn du die farben hast?
auswählen, löschen, ändern???


als Antwort auf: [#205416]

Objekt mit bestimmter Farbe suchen

neo
Beiträge gesamt: 28

18. Jan 2006, 08:30
Beitrag # 5 von 28
Beitrag ID: #205505
Bewertung:
(9196 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo heike
auf der farbfeldtabelle hat sich eine «falsche» farbe eingeschlichen und eigentlich wollte ich nur rausfinden, ob die farbe einem verknüpften, oder einem objekt des dokuments gehört.

grüße
neo


als Antwort auf: [#205450]

Objekt mit bestimmter Farbe suchen

U_Kohnle
Beiträge gesamt: 421

18. Jan 2006, 09:01
Beitrag # 6 von 28
Beitrag ID: #205507
Bewertung:
(9192 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Neo,

du kannst auf jeden Fall mal in der Farbpalette »Alle nicht verwendeten Farben auswählen«. Damit siehst du sofort ob die Farbe verwendet wird.


als Antwort auf: [#205505]

Objekt mit bestimmter Farbe suchen

Martin Fischer
  
Beiträge gesamt: 12714

18. Jan 2006, 09:32
Beitrag # 7 von 28
Beitrag ID: #205516
Bewertung:
(9184 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo neo,

das folgende Skript zeigt Dir das erste Objekt mit einer bestimmten Füll- oder Konturfarbe an. Über einen Dialog ist ein Farbfeld wählbar.

Das Skript sollte Textrahmen, Rechtecke, Elipsen, Dreiecke und Linien finden.
Was es an importierten Objekten findet, kann ich Dir im Moment nicht mit Sicherheit sagen. Getestet habe ich es mit Objekten aus Illustrator, die mit Volltonfarben enthalten (per Drag & Drop plaziert).
Bin für weitere Testergebnisse dankbar.

Code
// searchObjectByColor.jsx 
//DESCRIPTION: Zeigt das erste Objekt mit einer bestimmten Füll- oder Konturfarbe an. Das Farbfeld ist über einen Dialog wählbar
//
var myDoc = app.documents[0];
var mySwatches = myDoc.swatches.everyItem().name;

// Öffne Dialog
var mySwatchName = myDisplayDialog();
if (mySwatchName == undefined) exit()
var mySwatch = myDoc.swatches.item(mySwatchName);

app.select(NothingEnum.nothing); // ggf. vorhandene Auswahl löschen

for (oneSpread = 0; oneSpread < myDoc.spreads.length; oneSpread++)
{
var myObjects = myDoc.spreads[oneSpread].allPageItems;
for (oneObject = 0; oneObject < myObjects.length; oneObject++)
{
if (myObjects[oneObject].fillColor == mySwatch || myObjects[oneObject].strokeColor == mySwatch) selectIt(myObjects[oneObject]);
}
}
alert("Nichts gefunden!");

function myDisplayDialog()
{
var myFieldWidth = 150;
var myDialog = app.dialogs.add({name:"Objekte nach Farbe suchen"});
with(myDialog.dialogColumns.add())
{
with(dialogRows.add())
{
with(dialogColumns.add())
{
staticTexts.add({staticLabel:"Farbfeld:", minWidth:myFieldWidth});
}
with(dialogColumns.add())
{
var mySwatchesDropDown = dropdowns.add({stringList:mySwatches, selectedIndex:0});
}
}
}
var myResult = myDialog.show();
if(myResult == true)
{
var aSwatch = mySwatches[mySwatchesDropDown.selectedIndex]
myDialog.destroy();
}
else
{
myDialog.destroy();
}
return aSwatch ;
}

// selectIt-function
// thanks to Dave Saunders
// http://jsid.blogspot.com/2006/01/better-view-after-find.html
function selectIt(theObj) {
// Selects object, turns to page and zooms in on it
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoom = ZoomOptions.fitPage;
app.activeWindow.zoomPercentage = 200;
exit();
}



als Antwort auf: [#205505]
(Dieser Beitrag wurde von Martin Fischer am 18. Jan 2006, 09:47 geändert)

Objekt mit bestimmter Farbe suchen

neo
Beiträge gesamt: 28

18. Jan 2006, 13:59
Beitrag # 8 von 28
Beitrag ID: #205615
Bewertung:
(9164 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo uli
den kenn ich – ich möchte aber rausfinden wo die farbe im dokument vorkommt.

danke trotzdem.

grüße
neo


als Antwort auf: [#205507]

Objekt mit bestimmter Farbe suchen

neo
Beiträge gesamt: 28

18. Jan 2006, 14:42
Beitrag # 9 von 28
Beitrag ID: #205631
Bewertung:
(9153 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo martin
das script funkioniert soweit, dass es die objekte im dokument mit der entsprechenden zugewiesenen farbe findet. volltonfarben von verknüpften dokumenten findet es jedoch nicht.
… und hier ist mir auch ein irrtum unterlaufen.
ich ging davon aus, dass auch cmyk-farbfelder, die ich im illu definiert habe beim verknüpfen in iD erscheinen ;-)

egal – das script hilft mir trotzdem weiter – vielen dank.

grüße
neo


als Antwort auf: [#205516]

Objekt mit bestimmter Farbe suchen

Martin Fischer
  
Beiträge gesamt: 12714

18. Jan 2006, 15:11
Beitrag # 10 von 28
Beitrag ID: #205641
Bewertung:
(9142 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich hätte Dir noch eine Version, die beim wiederholten Aufruf des Skripts das nächste Objekt mit der gewählten Farbe anzeigt. Bei Bedarf könnte ich es zur Verfügung stellen.


als Antwort auf: [#205631]

Objekt mit bestimmter Farbe suchen

MSchmitz
Beiträge gesamt: 545

18. Jan 2006, 16:45
Beitrag # 11 von 28
Beitrag ID: #205676
Bewertung:
(9132 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo martin,

ja, das wäre schön, wenn du das script zur verfügung stellen könntest.

liebe grüße

markus schmitz


als Antwort auf: [#205641]

Objekt mit bestimmter Farbe suchen

neo
Beiträge gesamt: 28

18. Jan 2006, 17:37
Beitrag # 12 von 28
Beitrag ID: #205693
Bewertung:
(9125 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
… aber ja doch – gerne!
ich glaube, ich bin nicht der einzige der es brauchen kann ;-))

besten dank
grüße
ndu


als Antwort auf: [#205641]

Objekt mit bestimmter Farbe suchen

Martin Fischer
  
Beiträge gesamt: 12714

18. Jan 2006, 18:41
Beitrag # 13 von 28
Beitrag ID: #205712
Bewertung:
(9113 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe noch eine Kleinigkeit, an der ich rumfeilen möchte: Das Skript soll vor dem zweiten Durchlauf (und weiteren) die Farbe aus dem ausgewählten Objekt auslesen und im Dialog als Standardvorschlag anzeigen.


als Antwort auf: [#205693]
(Dieser Beitrag wurde von Martin Fischer am 18. Jan 2006, 18:42 geändert)

Objekt mit bestimmter Farbe suchen

Martin Fischer
  
Beiträge gesamt: 12714

18. Jan 2006, 21:34
Beitrag # 14 von 28
Beitrag ID: #205727
Bewertung:
(9099 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Aufgabenstellung hat mich gereizt.
Eine mögliche Lösung wäre für mich hin und wieder interessant.
Deswegen habe ich diesmal etwas länger rumgetüftelt.

Beim unten stehenden Skript bin ich mir noch nicht 100%ig sicher, ob es tatsächlich das tut, was ich mir vorstelle. Deshalb bin ich für jede Rückmeldung dankbar.

Das Skript soll folgendes tun:
1. Wenn kein Objekt ausgewählt ist, erscheint ein Dialog, in dem ein Farbfeld ausgewählt werden kann. Anschließend wird das Objekt gesucht und (falls eins gefunden wird) ausgewählt und angezeigt (hergezoomt).

2. Wenn ein Objekt gewählt ist, erscheint ebenfalls ein Dialog zur Auswahl eines Farbfeldes.
Im DropDown-Menü wird die Farbinformation des ausgewählten Objekts berücksichtigt - und zwar in der Reihenfolge Füllfarbe - Konturfarbe.
a. Wenn die Füllfarbe des Objekts eine andere als "[Keine]" ist, dann wird diese als Default im DrowDown-Menü des Dialogs angezeigt.
b. Wenn die Füllfarbe des Objekts = "[Keine]" ist, dann wird die Konturfarbe des Objekts als Default im DropDown Menü des Dialogs angezeigt - selbst wenn diese "[Keine]" ist.

3. Nach der Farbauswahl wird ein Objekt mit der gewählten Farbe gesucht.
a. Wenn vor Start des Skripts kein Objekt ausgewählt war, dann wird das erste Objekt ausgewählt und angezeigt (Anfangssuche).
b. Wenn ein Objekt ausgewählt war und wenn das Objekt die im Dialog ausgewählte Farbe als Füll- oder Konturfarbe enthält, dann wird das nächste Objekt ab dem nächsten Druckbogen gesucht (Weitersuchen).
c. Wenn ein Objekt ausgewählt war und wenn das Objekt die im Dialog ausgewählte Farbe als Füll- oder Konturfarbe nicht enthält, dann wird das erste Objekt (von vorne) gesucht, das die gewünschte Farbe enthält (Anfangsuche).

Das hört sich jetzt etwas kompliziert an.
Vielleicht löst sich der Knoten beim Ausprobieren.

Code
// searchObjectByColor_2beta.jsx 
//DESCRIPTION: Zeigt das erste Objekt mit einer bestimmten Füll- oder Konturfarbe an.
// Das Farbfeld ist über einen Dialog wählbar.
// Ist ein Objekt ausgewählt, so werden die Farben des Objekts im Dialog berücksichtigt.
//
var myDoc = app.documents[0];
var mySwatches = myDoc.swatches.everyItem().name;
var myFirstSpread = 0;
var myColIndex = 0

// Prüfe Auswahl
if (app.selection.length > 0)
{
// Füllfarbe unter den Farbfeldern?
if (app.selection[0].fillColor.name == "None")
{
var myColIndex = inArray(app.selection[0].strokeColor.name, mySwatches);
}
else
{
var myColIndex = inArray(app.selection[0].fillColor.name, mySwatches);
}
}

// Öffne Dialog
var mySwatchName = myDisplayDialog();
if (mySwatchName == undefined) exit()
var mySwatch = myDoc.swatches.item(mySwatchName);

// wenn etwas ausgewählt ist und die Füll- oder Konturfarbe der Auswahl der gewählten Farbe entspricht,
// dann suche erst ab dem folgenden Druckbogen
if (app.selection.length > 0)
{
if (app.selection[0].fillColor == mySwatch || app.selection[0].strokeColor == mySwatch)
{
myFirstSpread = app.selection[0].parent.parent.index+1;
}
}

app.select(NothingEnum.nothing); // ggf. vorhandene Auswahl löschen

for (oneSpread = myFirstSpread; oneSpread < myDoc.spreads.length; oneSpread++)
{
var myObjects = myDoc.spreads[oneSpread].allPageItems;
for (oneObject = 0; oneObject < myObjects.length; oneObject++)
{
if (myObjects[oneObject].fillColor == mySwatch || myObjects[oneObject].strokeColor == mySwatch)
{
selectIt(myObjects[oneObject]);
}
}
}
alert("Nichts gefunden!");

function myDisplayDialog()
{
var myFieldWidth = 150;
var myDialog = app.dialogs.add({name:"Objekte nach Farbe suchen"});
with(myDialog.dialogColumns.add())
{
with(dialogRows.add())
{
with(dialogColumns.add())
{
staticTexts.add({staticLabel:"Farbfeld:", minWidth:myFieldWidth});
}
with(dialogColumns.add())
{
var mySwatchesDropDown = dropdowns.add({stringList:mySwatches, selectedIndex:myColIndex});
}
}
}
var myResult = myDialog.show();
if(myResult == true)
{
var aSwatch = mySwatches[mySwatchesDropDown.selectedIndex]
myDialog.destroy();
}
else
{
myDialog.destroy();
}
return aSwatch ;
}

// Abfrage der Position im Array
function inArray(oneItem, oneArray)
{
for (onePos = oneArray.length-1; onePos >= 0; onePos--)
{
if (oneItem == oneArray[onePos]) break;
}
return onePos;
}

// selectIt-function
// thanks to Dave Sauders
// http://jsid.blogspot.com/2006/01/better-view-after-find.html
function selectIt(theObj) {
// Selects object, turns to page and zooms in on it
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoom = ZoomOptions.fitPage;
app.activeWindow.zoomPercentage = 200;
exit();
}


Wenn die Farbbedingung auf mehrere Objekte einer Doppelseite zutrifft, dann wählt das Skript ein Objekt (unabhängig von den Koordinaten, abhängig vom "Index" des Objekts).


als Antwort auf: [#205712]

Objekt mit bestimmter Farbe suchen

Gerald Singelmann
  
Beiträge gesamt: 6268

18. Jan 2006, 22:02
Beitrag # 15 von 28
Beitrag ID: #205733
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

erstes Feedback zum Konzept, ohne bisher getestet zu haben...

Wenn ich mir vorstelle, so ein Skript zu brauchen, dann würde ich von einer Analogie zu Apfel-F und Apfel-G in den meisten Programmen ausgehen: Apfel-F öffnet einen Dialog, in dem ich spezifiziere, was ich suchen will, der einen Knopf "Suchen" und ggf. auch einen Knopf "Weitersuchen" hat. Apfel-G sucht von der markierten Position aus weiter, macht also das gleiche wie "Weitersuchen" im Apfel-F Dialog, ohne einen Dialog aufzurufen.

Wenn wir die Analogie zu "Objekte mit Farben" betrachten: Du hast die Reihenfolge klar definiert: Spread nach Spread und innerhalb des Spreads der Index. "Suchen" fängt also auf der ersten Seite an, "Weitersuchen" nimmt den Index des Markierten und sucht nach dem nächsten, vorzugsweise auf demselben Spread, sonst im Rest des Dokuments.

Zu den Schwierigkeiten:
- Apfel-G macht nur Sinn, wenn ein Objekt markiert ist, da wir uns zwischen zwei Aufrufen des Skripts nicht sinnvoll merken können, was unter Apfel-F ausgewählt wurde (stimmt das?)
- wenn wir rausfinden könnten, ob der Füll- oder Kontur-Proxy aktiv ist, würde ich das als Kriterium vorschlagen, ob in Füllung oder Kontur gesucht wird. Können wir aber nicht, oder?
- Alternativ: ich würde eine Änderung der Reihenfolge der Objekte vorschlagen: nach wie vor als erstes der Index der Objekte auf dem Spread, aber zuerst alle Objekte, die die Farbe als Füllung haben, dann alle Objekte, die die Farbe als Kontur haben.
- Ach nein, das geht nicht, da wir uns ja dann merken müssten, ob wir zuletzt nach Füllung oder Kontur gesucht haben.
Warum dann nicht so:
- wir pfeifen auf ein zweites Skript ohne Dialog (für Apfel-G), sondern rufen den Dialog neu auf, nachdem ein Objekt gefunden wurde, mit den vorigen Einstellungen, dann macht "Weitersuchen" Sinn, denn das Skript weiß erstens noch die Liste der Objekte auf der Seite und zweitens, ob grad Füllung oder Kontur gemeint ist. Sprich: Der Knopf "Suchen" markiert ein Objekt, der Dialog geht wieder auf, mit "Weitersuchen" als Default und nebenbei der Möglichkeit, die Suchbedingungen zu ändern. Klick auf "Abbrechen" beendet den Dialog, lässt aber die Auswahl bestehen.
- Wo ich grad am Träumen bin: wenn grad Text markiert ist, wird im Text gesucht, wenn ein Objekt markiert ist, werden Objekte gesucht.

Worauf ich hinaus will: eine Suchroutine solte *alle* Objekte finden (ich verstehe Dein "Weitersuchen" so, dass auf dem nächsten Spread weitergesucht wird) und ich finde zwei Knöpfe für "Weitersuchen" und "(Anfangs)Suche" eindeutiger als die Abhängigkeit von Bedingungen. Z.B würde ich (analog zur Textsuche), wenn ein Objekt markiert ist, davon ausgehen, dass von da an gesucht wird, egal, was ich im Suchdialog definiert habe.

Great effort, by the way :))


als Antwort auf: [#205727]
X