[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Abgeschnittene Bilder finden (CS6, WIN7)

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

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

23. Okt 2014, 19:51
Beitrag # 1 von 11
Bewertung:
(4567 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Abend,

ich versuche gerade in einem Dokument alle Bilder aufzuspüren, bei denen der Bildrahmen kleiner ist als das darin vorhandene Bild.

Ein Musterdokument anbei.
Oben ist der Rahmen genauso gross wie das Bild.
Im unteren Beispiel wurde der Rahmen verkleinert.
Das Bild ist also abgeschnitten. Dies kann natürlich an allen vier Seiten passieren.
Folgenden Ansatz habe ich schon.

Nun soll am Schluss eine Art Rapport entstehen:
Code
Bei folgenden Bildern ist der Rahmen kleiner: 
Bild Seite
Tulips.jpg 1


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


for (var g=0; g<graphics.length; g++) {
var gB_innen = graphics[g].parent.geometricBounds;
var gB_aussen = graphics[g].geometricBounds;

alert("Bild: "+ graphics[g].itemLink.name+" - "+gB_innen[0]+" - "+gB_innen[1]+" - "+gB_innen[2]+" - "+gB_innen[3]);
alert("Bild: "+ graphics[g].itemLink.name+" - "+gB_aussen[0]+" - "+gB_aussen[1]+" - "+gB_aussen[2]+" - "+gB_aussen[3]);
}


Anhang:
bilder_abgeschnitten.idml (27.4 KB)
X

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

24. Okt 2014, 07:44
Beitrag # 2 von 11
Beitrag ID: #533395
Bewertung:
(4498 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich sehe gerade, mein Beitragsende wurde gar nicht übertragen (sorry)

Wie kann ich nun feststellen, ob das Bild angeschnitten ist?

Bitte um Hilfe

Gruß
Christoph


als Antwort auf: [#533388]
(Dieser Beitrag wurde von cwenet am 24. Okt 2014, 07:45 geändert)

Abgeschnittene Bilder finden (CS6, WIN7)

Martin Fischer
  
Beiträge gesamt: 12783

24. Okt 2014, 08:43
Beitrag # 3 von 11
Beitrag ID: #533396
Bewertung:
(4479 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

vergleiche jeweils die Werte für die Kanten von Bild und Rahmen.

Wenn z.B. der obere y-Wert des Bilds kleiner ist als der obere y-Wert des Rahmens, dann ist ein Teil des Bildes beschnitten.
Ebenso, wenn der untere y-Wert des Bilds größer ist als der untere y-Wert des Rahmens.

Verfahre ebenso mit dem Vergleich der x-Werte.


als Antwort auf: [#533395]
(Dieser Beitrag wurde von Martin Fischer am 24. Okt 2014, 08:44 geändert)

Abgeschnittene Bilder finden (CS6, WIN7)

barsch1969
Beiträge gesamt: 52

24. Okt 2014, 09:23
Beitrag # 4 von 11
Beitrag ID: #533397
Bewertung:
(4455 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

das Ergebnis würde mich auch sehr interessieren, da wir im Katalog auch viele eng aneinander liegende Bilder haben, wo oft an den Rahemn "rumgezogen" wird und das ein oder andere Bild dann wirklich unbeabsichtigt beschnitten wird.

Gruß
Markus


als Antwort auf: [#533396]

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

24. Okt 2014, 14:13
Beitrag # 5 von 11
Beitrag ID: #533406
Bewertung:
(4254 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag zusammen,

das sind meine ersten Gehversuche. Aber irgendwie blicke ich jetzt nicht mehr durch.

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

_report = [];

var anschnitt = "alles ok";


for (var g=0; g<graphics.length; g++) {
var gB_innen = graphics[g].parent.geometricBounds;
var gB_aussen = graphics[g].geometricBounds;




if (gB_innen[0] > gB_aussen[0]) {
anschnitt = anschnitt+ "-oben-";
}

if (gB_innen[1] > gB_aussen[1]) {
anschnitt = anschnitt+ "-links-";
}

if (gB_innen[2] < gB_aussen[2]) {
anschnitt = anschnitt+ "-unten-";
}

if (gB_innen[3] < gB_aussen[3]) {
anschnitt = anschnitt+ "-rechts-";
}

var seitenzahl = graphics[g].parentPage.name;
_report.push(graphics[g].itemLink.name+'\t'+seitenzahl+'\t'+anschnitt);


}




//Report ausgabe////////////////////////////////////////////////////////////////////////
function cut_suffix (oneFile) {
return oneFile.replace(/\.indd$/i, '') ;
}
var myFilePath = app.activeDocument.filePath+"/" + cut_suffix(app.activeDocument.name ) + '__[angeschnittene Bilder].txt';
var myFile = new File(myFilePath);
var d = new Date;
myFile.open("w");
myFile.encoding = "UTF-8";
myFile.write("Bild\tSeite\tPosition\n"+_report.join('\r'));
myFile.close();
myFile.execute();


Ich glaube, ich komme da immer noch nicht mit der Boundingbox klar.
Weiterhin habe ich keine Idee, wie ich das mit dem Status "alles ok" am elegantesten mache.
Und was mache ich, wenn ein Bild ausserhalb der Seite steht. Also wenn es randabfallend ist?

Bitte um weitere Hilfe.
Gruss
Christoph


als Antwort auf: [#533397]

Abgeschnittene Bilder finden (CS6, WIN7)

Thomas Richard
Beiträge gesamt: 19339

24. Okt 2014, 17:42
Beitrag # 6 von 11
Beitrag ID: #533409
Bewertung:
(4202 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nur mal so rein aus Interesse: Sollte das nicht der Normalzustand sein, ein Foto auf seinen relevanten Ausschnitt zu beschneiden ist doch Aufgabe des Bildrahmens. Oder beim gerade ausrichten, ...?


als Antwort auf: [#533388]

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

24. Okt 2014, 17:56
Beitrag # 7 von 11
Beitrag ID: #533410
Bewertung:
(4197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Thomas,

das ist richtig. Rahmen können auch für das Maskieren von nicht gewollten Bildbereichen verwendet werden.
In meinem Workflow werden die Bilder bereits in der Bildbearbeitung passend gemacht, da ich Abbildungen generell automatisiert in das Indd-Dokument lade.
Da muss alles vorher stimmen. Vor allem auch bei EPS Schaubildern mit Text.
Wenn im Feinumbruch dann versehentlich mal ein Rahmen verkleinert wird, möchte ich mich vor der Printausgabe absichern, dass alles sichtbar ist.

Grüße
Christoph


als Antwort auf: [#533409]

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

25. Okt 2014, 06:50
Beitrag # 8 von 11
Beitrag ID: #533412
Bewertung:
(4092 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen schön,

habe mich nochmals durchgebissen und es scheint gut zu funktionieren:

Code
//Sicherstellen, ob das Dokument schon gespeichert wurde und somit auch einen Dateinamen besitzt.  
//Wird für die Erstellung der Raportdatei benötigt.
if(app.activeDocument.saved == false){
alert('Dokument bitte vorher speichern!', 'Hinweis','SystemStopIcon') ;
exit();
}

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

_report = [];



for (var g=0; g<graphics.length; g++) {

var gB_innen = graphics[g].geometricBounds;
var gB_aussen = graphics[g].parent.geometricBounds;

var anschnitt ="";

if (gB_innen[0] < gB_aussen[0]) {
anschnitt = anschnitt+"-oben-";
}

if (gB_innen[2] > gB_aussen[2]) {
anschnitt = anschnitt+"-unten-";
}

if (gB_innen[1] < gB_aussen[1]) {
anschnitt = anschnitt+"-links-";
}

if (gB_innen[3] > gB_aussen[3]) {
anschnitt = anschnitt+"-rechts-";
}

// nur wenn ein Bild angeschnitten ist, wird es gelistet
if (anschnitt !="") {
var seitenzahl = graphics[g].parentPage.name;
_report.push(graphics[g].itemLink.name+'\t'+seitenzahl+'\t'+anschnitt);
}

}



//Report ausgabe
function cut_suffix (oneFile) {
return oneFile.replace(/\.indd$/i, '') ;
}
var myFilePath = app.activeDocument.filePath+"/" + cut_suffix(app.activeDocument.name ) + '__[angeschnittene Bilder].txt';
var myFile = new File(myFilePath);
var d = new Date;
myFile.open("w");
myFile.encoding = "UTF-8";
myFile.write("Bild\tSeite\tAnschnitt\n"+_report.join('\r'));
myFile.close();
myFile.execute();


Einzig, wenn ein Bild auf der Montagefläche liegt gibt es eine Fehlermeldung.
Das kommt bei meinen Dokumenten so nicht vor.
Es funktioniert sogar bei verankerten Bildern.
Hoffe, ich habe jetzt nichts übersehen.
Eventuell muss man den Vergleich zwischen innen und aussen etwas grober einstellen.
Also eine kleine Toleranz erlauben, da die Werte schonmal viele Nachkommastellen haben können.

Schönen Tag
Christoph


als Antwort auf: [#533410]
(Dieser Beitrag wurde von cwenet am 25. Okt 2014, 06:59 geändert)

Abgeschnittene Bilder finden (CS6, WIN7)

barsch1969
Beiträge gesamt: 52

27. Okt 2014, 08:39
Beitrag # 9 von 11
Beitrag ID: #533448
Bewertung:
(3829 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christof,

ich habe es getestet, es funktioniert sehr gut.
Einzig Dein schon gemachter Hinweis mit einer Erhöhung der Toleranzgrenzen wäre noch gut, denn er findet bei mir auch Bilder, wo der Begrenzungsrahmen passt.

Gruß
Markus


als Antwort auf: [#533412]

Abgeschnittene Bilder finden (CS6, WIN7)

Hans Haesler
  
Beiträge gesamt: 5826

27. Okt 2014, 21:58
Beitrag # 10 von 11
Beitrag ID: #533469
Bewertung:
(3728 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ja, die Werte können viele Nachkommastellen haben. Aber auch wenn diese bis zu vierzehn Ziffern exakt übereinstimmen, kommt es öfters vor, dass dennoch ein Unterschied festgestellt wird. Vielleicht weil intern noch mehr Ziffern verwendet werden.

Eine mögliche Lösung: Die Werte auf drei Nachkommastellen runden:

Code
// prüfen, ob ein Dokument geöffnet ist 
if (app.documents.length == 0) {
alert("Bitte ein Dokument öffnen.", "Hinweis", "SystemStopIcon");
exit();
}

// sicherstellen, dass das Dokument schon gespeichert wurde
// und somit auch mit einem Dateinamen versehen ist
// (wird für die Erstellung der Rapportdatei benötigt)
if (app.activeDocument.saved == false) {
alert("Dokument bitte vorher speichern!", "Hinweis", "SystemStopIcon");
exit();
}

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

_report = new Array();

for (var g=0; g<graphics.length; g++) {

var gB_innen = graphics[g].geometricBounds;
var gi0 = Math.floor((gB_innen[0]*1000)+0.5)/1000;
var gi1 = Math.floor((gB_innen[1]*1000)+0.5)/1000;
var gi2 = Math.floor((gB_innen[2]*1000)+0.5)/1000;
var gi3 = Math.floor((gB_innen[3]*1000)+0.5)/1000;

var gB_aussen = graphics[g].parent.geometricBounds;
var ga0 = Math.floor((gB_aussen[0]*1000)+0.5)/1000;
var ga1 = Math.floor((gB_aussen[1]*1000)+0.5)/1000;
var ga2 = Math.floor((gB_aussen[2]*1000)+0.5)/1000;
var ga3 = Math.floor((gB_aussen[3]*1000)+0.5)/1000;

var anschnitt = new Array();

if (gi0 < ga0) {
anschnitt.push("oben");
}
if (gi1 < ga1) {
anschnitt.push("links");
}
if (gi2 > ga2) {
anschnitt.push("unten");
}
if (gi3 > ga3) {
anschnitt.push("rechts");
}

// nur wenn ein Bild angeschnitten ist, wird es gelistet
if (anschnitt.length != 0) {
var anschnittString = "- " + anschnitt.join(" + ") + " -";
try {
var seitenZahl = graphics[g].parentPage.name;
}
catch (e) {
var seitenZahl = "MF";
}
_report.push(graphics[g].itemLink.name + "\t" + seitenZahl + "\t" + anschnittString);
}
}

// Report-Ausgabe
if (_report.length > 0) {
var myFilePath = app.activeDocument.filePath + "/" + cut_suffix(app.activeDocument.name) + "_[angeschnittene Bilder].txt";
var myFile = new File(myFilePath);
myFile.open("w");
myFile.encoding = "UTF-8";
myFile.write("Bild\tSeite\tAnschnitt\n"+_report.join("\r"));
myFile.close();
myFile.execute();
}
else {
alert ("Alles okay.", "Nichts angeschnitten");
}

function cut_suffix(oneFile) {
return oneFile.replace(/\.indd$/i, '') ;
}

Eine Fehlermeldung vermeiden, wenn ein Bildrahmen ausserhalb der Seite liegt? Das ist hier so gelöst: Ein 'try'-Wickel eingefügt und bei Bedarf im 'catch()'-Bereich der Variablen 'seitenZahl' den Kürzel "MF" (= Montagefläche) zuweisen.

Gruss, Hans


als Antwort auf: [#533412]

Abgeschnittene Bilder finden (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

28. Okt 2014, 10:05
Beitrag # 11 von 11
Beitrag ID: #533479
Bewertung:
(3666 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Besten Dank Lieber Hans,

für die angepasste Scriptversion (viel schöner ausgearbeitet) und auch für den Hinweis für evtl. versteckte Nachkommastellen.
Da wäre ich nie drauf gekommen und wahrscheinlich verzweifelt.

Einen schönen Tag
Christoph


als Antwort auf: [#533469]
X

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!