[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Sichtbarkeit eines Bildes prüfen

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

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 09:10
Beitrag # 1 von 23
Bewertung:
(782 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Skripter,

ich hab hier ein Mini-Skript wo ich auf den Fehler leider nicht draufkomme:
Folgende Situation:
Es soll geprüft werden ob das aktuelle Bild sichtbar ist.

Sichtbar heißt für mich: Das Bild wurde direkt ausgeblendet oder es liegt auf einer ausgeblendeten Ebene.

Leider gibt mir der Code immer ein falsches Alert, also wenn das Bild sichtbar ist gibt er keine Meldung, wenn es unsichtbar ist gibt er es als sichtbar aus. Wo liegt der Fehler?

Code
var doc = app.documents[0];  
var allGraphics = doc.allGraphics;

for(var n=0;n<allGraphics.length;n++)
{



if((allGraphics[n].itemLink.name =="Bild1.tif") &&
(allGraphics[n].visible == false))

{

alert ("Das Bild: "+allGraphics[n].itemLink.name + " ist nicht sichtbar" )

}
};


Habt ihr eine Idee? Vielen Dank
X

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 09:32
Beitrag # 2 von 23
Beitrag ID: #579521
Bewertung:
(763 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Faxinger,

probiere es mal so:
Code
var doc = app.documents[0];   
var allGraphics = doc.allGraphics;

for(var n=0;n<allGraphics.length;n++)
{



if((allGraphics[n].itemLink.name =="Bild1.tif") &&
(!(allGraphics[n].visible)))

{

alert ("Das Bild: "+allGraphics[n].itemLink.name + " ist nicht sichtbar" )

}
};

Dein Vergleich:
(false == false) -> true!

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579520]

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 10:18
Beitrag # 3 von 23
Beitrag ID: #579522
Bewertung:
(724 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

danke für den Hinweis. Aber leider ist das Ergebnis dasselbe.

Egal ob das Bild eingeblendet ist oder nicht: Mit NOT bekomme ich keine Meldung, Ohne NOT die Meldung dass das Bild nicht sichtbar ist. Das ist doch verkehrt rum oder?


als Antwort auf: [#579521]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 10:37
Beitrag # 4 von 23
Beitrag ID: #579523
Bewertung:
(713 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

Bei mir funktioniert Folgendes:
Code
x.visible = true; 
if ((true) && (!(x.visible)))
alert("not visible");
else
alert("visible");
x.visible = false;
if ((true) && (!(x.visible)))
alert("not visible");
else
alert("visible");


x ist eine Gruppe,
(true) ersetzt (allGraphics[n].itemLink.name =="Bild1.tif")

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579522]

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 10:51
Beitrag # 5 von 23
Beitrag ID: #579524
Bewertung:
(709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

ich habs jetzt noch einfacher versucht, nur ein Bild ausgeblendetund die Abfrage nach dem Bildnamen weggelassen:
Code
 

var doc = app.documents[0];
var allGraphics = doc.allGraphics;

for(var n=0;n<allGraphics.length;n++)
{
if (!(allGraphics[n].visible))
{

alert ("Das Bild: "+allGraphics[n].itemLink.name + " ist nicht sichtbar" )
}
};


Also liegt es nicht an der && Abfrage was zuerst meine Vermutung war.
Leider funktioniert auch diese Abfrage nicht richtig. :-(


als Antwort auf: [#579523]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 10:58
Beitrag # 6 von 23
Beitrag ID: #579525
Bewertung:
(700 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

Nur auf Visible testen:

if (!(bild.visible))
alert("not visible");

Probiere doch mal:
Code
var doc = app.documents[0];   
var allGraphics = doc.allGraphics;

for(var n=0;n<allGraphics.length;n++)
{
if (!(allGraphics[n].visible))
{

alert (allGraphics[n].visible)
}
};

Was siehst Du?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579524]

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 11:05
Beitrag # 7 von 23
Beitrag ID: #579526
Bewertung:
(689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

ich habe jetzt ein neues Dokument mit einer Seite, einer Ebene, und einem Bild auf der Seite.

Ich blende das Bild aus, lass deinen Code laufen. "Ergebnis undefined" in der Console, kein alert.

Ich blende das Bild ein, lass deinen Code laufen.
"Ergebnis undefined" in der Console, kein alert.

Wenn ich das NOT wegnehme erhalte ich als alert "true", auch hier unabhängig davon ob das Bild ein- oder ausgeblendet ist.


als Antwort auf: [#579525]
(Dieser Beitrag wurde von faxinger666 am 15. Apr 2021, 11:18 geändert)

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 11:19
Beitrag # 8 von 23
Beitrag ID: #579527
Bewertung:
(659 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

Du schaffst mich! :-)

Code
var doc = app.documents[0];    
var allGraphics = doc.allGraphics;

for(var n=0;n<allGraphics.length;n++)
{
allGraphics[n].visible = false;
if (!(allGraphics[n].visible))
{

alert (allGraphics[n].visible)
}
};


liefert bei mir das erwartete Ergebnis.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579526]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 11:27
Beitrag # 9 von 23
Beitrag ID: #579528
Bewertung:
(657 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es ist immer hilfreich, den verwendeten Code im Beitrag zu wiederholen, ich habe jetzt enfach mal den Überblick verloren.

Eingeblendetes Bild.visible -> true
Ausgeblendetes Bild.visibile -> false

Wird natürlich nur angezeigt, wenn Dein if es zulässt.

Zitat Ich blende das Bild ein, lass deinen Code laufen.
"Ergebnis undefined" in der Console


Das ist das Ergebnis des Skriptes und völlig korrekt, weil das Skript kein Ergebnis liefert.

Verwende zur Kontrolle auf jeden Fall auch das "else".

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579526]

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 11:35
Beitrag # 10 von 23
Beitrag ID: #579529
Bewertung:
(646 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, sorry aber ich kapier es nicht:

Dein Code blendet das Bild aus, als alert erhalte ich "false".

In der Ebenenpalette hat aber das Bildobjekt das Auge sichtbar.

Jetzt sehe ich den Wald vor lauter Bäumen nicht mehr.

Ich glaube ich hab da was falsch verstanden von der Umsetzung her. Bedeutet "visible" nicht, dass das Objekt in der Ebenenpalette eingeblendet ist? Sind das 2 verschiedene Herangehensweisen? Man kann ja ein Objekt direkt ausblenden (command 3) oder über die Ebenenpalette. Bewirkt das nicht das selbe? Ich wollte testen ob das Objekt in der Ebenenpalette ausgeblendet ist, ging davon aus nicht sichtbar weil man es ja auch tatsächlich nicht sieht.


als Antwort auf: [#579527]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 11:46
Beitrag # 11 von 23
Beitrag ID: #579530
Bewertung:
(633 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es kommen wir auf den Punkt, verwende die Property pageItem.itemLayer.visible.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579529]

Sichtbarkeit eines Bildes prüfen

faxinger666
Beiträge gesamt: 149

15. Apr 2021, 12:37
Beitrag # 12 von 23
Beitrag ID: #579533
Bewertung:
(609 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, vielen Dank für deine Antwort. Ja wir nähern uns, allerdings bin ich noch nicht dort wo ich hin will :-)

Das Skript mit der Abfrage des itemlayers funktioniert nur insofern dass es richtig ausgibt sobald die gesamte Ebene ausgeblendet ist, nicht aber wenn nur das Bild auf der Unterebene ausgeblendet ist und die hierarchisch darüber liegende Ebene eingeblendet ist.
Struktur: Ebene 1, auf Ebene 1 liegt das Bild.
Ebene 1 und Bild ausgeblendet: funktioniert.
Ebene 1 und Bild eingeblendet: funktioniert.
Ebene 1 eingeblendet, Bild ausgeblendet: funktioniert nicht.
Ebene 1 ausgeblendet, Bild eingeblendet: funktioniert nicht.


als Antwort auf: [#579530]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 13:00
Beitrag # 13 von 23
Beitrag ID: #579534
Bewertung:
(579 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

ich denke, es wird Zeit, dass Du mal eine Beispieldatei zur Verfügung stellst.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579533]

Sichtbarkeit eines Bildes prüfen

WernerPerplies
Beiträge gesamt: 2607

15. Apr 2021, 13:13
Beitrag # 14 von 23
Beitrag ID: #579535
Bewertung:
(536 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Hallo Werner, vielen Dank für deine Antwort. Ja wir nähern uns, allerdings bin ich noch nicht dort wo ich hin will :-)

Ergänzend zu meinen letzen Beitrag, manchmal hilft ein wenig Nachdenken :-):
1. es gibt keine Sublayers
2. muss die Eigenschaft als im Objekt liegen.
3. die direkte Abfrage des Objektes funltioniert nicht, also ist die Eigenschaft mit dem Objekt verbunden, daraus folgt:
Suche das Objekt auf der Ebene:
object.itemLayer.objects.itemByID(object.id).visible sollte die gewünschte Information enthalten.

Wirklich spannend wird es allerdings, wenn sich Dein Objekt tief verschachtelt in einer Gruppe befindet.

Das wäre dann aber etwas für Fortgeschrittene -> rekursive Programmierung.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#579533]

Sichtbarkeit eines Bildes prüfen

Uwe Laubender
Beiträge gesamt: 4907

15. Apr 2021, 13:14
Beitrag # 15 von 23
Beitrag ID: #579536
Bewertung: |||
(536 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jungs,
wie wäre es mal mit Durchatmen?
Oooom…

Zur Verwirrung:

Spezialfälle:
[1] Grafikrahmen der Abbildung ist in Übersatztext.
[2] Grafikrahmen ist Teil eines nicht aktiven Status ( Schaltfläche, MSO etc. )
[3] Grafik ist innerhalb des Grafikrahmens so verschoben, dass kein Teil von ihr zu sehen ist.
[4] Ein Transparenteffekt macht die Grafik unsichtbar.
[5] Die Grafik wird durche ein Element verdeckt.

Allgemein gilt:

Eine Grafik kann nur dann sichtbar sein, wenn die ihr übergeordnete Struktur sichtbar ist.
Also der Grafikrahmen beispielsweise. Oder die Gruppe, deren Teil der Grafikrahmen ist. Oder der Textrahmen, in dem der Grafikrahmen verankert ist.


Mal die Spezialfälle nicht geprüft, könnte das ein möglicher Ansatz sein:

Code
 
/*
HINWEIS:
Grafiken auf Musterseiten werden NICHT untersucht, da zunächst die Ebenen geprüft werden.

*/

var doc = app.documents[0];
var layers = doc.layers.everyItem().getElements();

var invisibleGraphics = [];

for( var n=0; n<layers.length; n++ )
{
// Keine Grafiken auf der Ebene? Weiter in der Schleife.
var allGraphicsOnLayer = layers[n].allGraphics;
if( allGraphicsOnLayer.length == 0 ){ continue };

// Ist die EBENE unsichtbar?
// Alle Grafiken der Ebene dem Resultat-Array hinzufügen.
// Dann weiter in der Schleife.
if( layers[n].visible == false )
{
invisibleGraphics = invisibleGraphics.concat( allGraphicsOnLayer );
continue
};

// Die einzelnen Elemente der Ebene und deren allGraphics array untersuchen:
var itemsOfLayer = layers[n].pageItems.everyItem().getElements();

for( var i =0; i<itemsOfLayer.length; i++ )
{
// Keine Grafiken im Element? Weiter in der Schleife.
if( itemsOfLayer[i].allGraphics.length == 0 ){ continue };

// Ist das Element unsichtbar, dann sind auch alle Grafiken im Element unsichtbar.
// Also alle Grafiken dem Ergebnis-Array hinzufügen und weiter in der Schleife.
if( itemsOfLayer[i].visible == false )
{
invisibleGraphics = invisibleGraphics.concat( itemsOfLayer[i].allGraphics );
continue;
};

// Weiter geht's mit der Einzeluntersuchung:
// Grafiken innerhalb von Elementen, die sichtbar sind:
var allGraphicsInItem = itemsOfLayer[i].allGraphics;

for( var g=0; g<allGraphicsInItem.length; g++ )
{
if( allGraphicsInItem[g].visible == false )
{
invisibleGraphics[invisibleGraphics.length++] = allGraphicsInItem[g];
};
};

};

};

alert( "Anzahl unsichtbarer Grafiken: " + invisibleGraphics.length );

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#579529]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS