Anlegen von Previews aus Bilddateien und Bildern
Ein allgemeines Beispiel zur Verwendung der Klasse image finden sie hier.
Anlegen von Previews aus Bilddateien und Bildern
static Image image::alloc(char* path_or_url = 0)
Erzeuge ein Preview einer Datei. Bildobjekte müssen mit image::release wieder gelöscht werden! Pfade können vollständige Systempfade (OS X) oder URLs (Nur Mac, unter Windows können zur Zeit noch keine URLs verwendet werden!) sein. Die interne Repräsentation des Bildes wird erst angelegt, wenn das Bild tatsächlich benötigt wird.
Name | Typ | Default | Beschreibung |
Return | Image | Preview der Bilddatei oder allokieren einer Bildvariable | |
path_or_url | String oder char* | - | Vollständiger Dateipfad oder URL auf eine Bilddatei. Fehlt der Parameter (ab Version 2.0 R634 darf er auch leer sein), wird ein neues leeres Bild erzeugt. |
img = image::alloc (path);
Hole das Preview eines Templates aus der aktuellen Datenbank und sichere es auf den Schreibtisch.
#include "internal/types.h" #include "internal/text.h"
int main () { Query qu = sql::query (sql::dbconnection ()); Image img = 0;
/// Init if (!qu) { showmessage ("No database connction"); return 0; }
img = image::alloc ();
// Retreive image query::send (qu, "select preview from pageitems where ID = 15"); query::output (qu, kImage, img); if (!query::exec(qu)) { query::close (qu); image::release (img); return 0; } while (query::fetch (qu)) {} query::close (qu);
// Save image file wlog ("", "Size of image : %d\n", image::bytes (img)); image::save (img, "$DESKTOP/aaa/pageitem15.jpg", 1); image::release (img);
return 0; }
Bilder können auch aus dem Internet geladen werden. Achtung : Wollen Sie Bilder nicht "eingebettet" importieren, müsen Sie natürlich eine Datei des Bildes anlegen (image::save) und statt frame::embed:image frame::image verwenden, aber das ist Ihnen sicherlich klar.
#include "internal/text.h" #include "internal/types.h"
int main () { char imgFile [255]; int res; char dp [2000]; Image img = 0;
document::folder (dp); strcpy (imgFile, "http:///www.hi13.de/Auto.JPG"); img = image::alloc (imgFile);
res = frame::embed_image (gFrame, img, kPlaceTopLeft, 0.0);
if (res == 0) wlog ("", "Embedding '%s' successfully finished\n", imgFile); else wlog ("", "Embedding '%s' done with error %d\n", imgFile, res); image::release (img);
return 0; }
static Image image::preview(
Image org,
int size = 0,
int resolution = 72,
int color_depth = 24,
char* format= "JPEG")
Nur Mac Erzeuge ein Preview eines Bildes. Unter Windows wird eine Kopie des Bildes zurückgegeben. Unter Mac wird mit den gemachten Angaben ein neues Bild berechnet und zurückgegeben. In beiden Fällen sollte die Variablen mit release wieder gelöscht werden.
Die Farbtiefe kann nicht bei allen Bildformaten (z.B. PICT) gesetzt werden, in diesen Fällen wird sie ignoriert.
Die Previews werden mit Hilfe von Quicktime erstellt, das nur unter Macintosh-Betriebssystemen standardmäßig
installiert ist. Deshalb können Previews nur auf diesem Betriebsystem berechnet werden.
Format | Verfügbarkeit | Bemerkungen |
JPG, JPEG | alle | |
TIF, TIFF | ||
GIF | ||
PICT | nur Mac | Bei PICT-Bildern wird die Farbtiefe ignoriert. |
PNG | ||
Photoshop | ||
SGI | ||
MacPaint | ||
Targa | ||
QuickDraw | ||
QuickTime | ||
Flash | ||
FlashPix |
Name | Typ | Default | Beschreibung |
Return | Image | Preview des Bildes | |
org | Image | - | Originalbild |
size | int | Originalgröße | Größe des Previews in Pixeln, 0 = Originalgröße |
resolution | int | 72 | Auflösung in ppi |
color_depth | int | 24 | Farbtiefe in Bits/Pixel |
format | String oder char* | "JPEG" | Bildformat als String, siehe obige Tabelle der Bildformate |
int main () { Image img = image::alloc ("$DESKTOP/clara.JPG"); Image prv = image::preview (img, 140, 72, 24, "JPG");
showmessage ("Original\n\nStatus : %d\nGröße : %d", image::error (prv), image::bytes (prv)); showmessage ("Preview\n\nStatus : %d\nGröße : %d", image::error (prv), image::bytes (prv));
image::release (img); image::release (prv); return 0; }
static Image image::snapshot_page(
ItemRef docRef,
int pageNum = 1,
int bounding = -1,
char* format= "JPEG",
int quality = 2,
float resolution = 72.0)
Seitenpreview einer Dokumentseite erzeugen. Die Funktion erzeugt von der gewünschten Seite des angegebenen Dokumentes ein Bild. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.
In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.
Name | Typ | Default | Beschreibung |
Return | Image | Das neu erzeugte Bild oder 0 im Fehlerfall | |
docRef | ItemRef | 0 | Dokumentreferenz 0 : aktuelles Dokument |
pageNum | int | 1 | 1-basierte Seitennummer |
bounding | int | kOriginalSize | Größe des quadratischen Rahmens in Punkten, in den
das Bild (proportional) skaliert werden soll. kOriginalSize : Originalgröße |
format | String oder char* | "JPEG" | Zielformat des Bildes. Erlaubt sind die folgenden Angaben JPG, JPEG GIF, GIFF TIF, TIFF Alle anderen Angaben erzeugen ein JPEG-Bild. |
quality | int | kAntiAliasing | Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind: Antialiasing für alle Objekte: kAntiAliasing Voll auflösende Grafiken: kFullResGraphics Graustufen: kDrawGray Transparenz: kXPOff kXPLow kXPMedium kXPHigh kXPMaximum JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGLowQuality kJPEGGoodQuality kJPEGExcellentQuality kJPEGGreatQuality JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGBaseline kJPEGProgressive Alpha Kanal: kAddAlpha Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist: kAntiAliasing |
resolution | float | 72.0 | Auflösung des Previews |
Erzeuge ein 100x100 Preview der dritten Seite des aktuellen Dokumentes.
int main () { Image prv = image::snapshot_page (0, 3, 100, "JPG");
showmessage ("Status : %d\nGröße : %d", image::error (prv), image::bytes (prv));
image::release (prv); return 0; }
static Image image::snapshot_frames(
ItemList frames,
int bounding = -1,
char* format= "JPEG",
int quality = 2,
float resolution = 72.0)
Preview ausgewählter Dokumentrahmen erzeugen. Die Funktion erzeugt aus einer Liste von Dokumentrahmen eine Snapshot. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.
In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.
Name | Typ | Default | Beschreibung |
Return | Image | Das neu erzeugte Bild oder 0 im Fehlerfall | |
frames | ItemList | - | Liste gültiger Rahmen, siehe itemlist |
bounding | int | kOriginalSize | Größe des quadratischen Rahmens in Punkten, in den
das Bild (proportional) skaliert werden soll. kOriginalSize : Originalgröße |
format | String oder char* | "JPEG" | Zielformat des Bildes. Erlaubt sind die folgenden Angaben JPG, JPEG GIF, GIFF TIF, TIFF Alle anderen Angaben erzeugen ein JPEG-Bild. |
quality | int | kAntiAliasing | Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind: Antialiasing für alle Objekte: kAntiAliasing Voll auflösende Grafiken: kFullResGraphics Graustufen: kDrawGray Transparenz: kXPOff kXPLow kXPMedium kXPHigh kXPMaximum JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGLowQuality kJPEGGoodQuality kJPEGExcellentQuality kJPEGGreatQuality JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGBaseline kJPEGProgressive Alpha Kanal: kAddAlpha Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist: kAntiAliasing + kAddAlpha |
resolution | float | 72.0 | Auflösung des Previews |
Erzeuge ein 100x100 Preview der ausgewählten Rahmen des aktuellen Dokumentes.
int main () { Image img = image::snapshot_frames (itemlist::selected (), 100);
showmessage ("Status : %d\nGröße : %d", image::error (img), image::bytes (img));
image::release (img); return 0; }
static Image image::snapshot_frame(
ItemRef frame,
int bounding = -1,
char* format= "JPEG",
int quality = 2)
Preview eines Dokumentrahmens erzeugen Die Funktion erzeugt ein Snapshot eines Dokumentrahmens. Als Bildformate sind (aus Kompatibilitätsgründen zwischen Mac und Windows) nur JPG, TIFF und GIF erlaubt. Das erzeugte Bild sollte mit release wieder gelöscht werden.
In reinen Mac-Umgebungen kann das Bild mit Hilfe der Funktion preview in ein PICT (oder ein anderes dort untertsütztes Format) konvertiert werden.
Name | Typ | Default | Beschreibung |
Return | Image | Das neu erzeugte Bild oder 0 im Fehlerfall | |
frame | ItemRef | - | Gültriger Dokumentrahmen, z.B. gFrame |
bounding | int | kOriginalSize | Größe des quadratischen Rahmens in Punkten, in den
das Bild (proportional) skaliert werden soll. kOriginalSize : Originalgröße |
format | String oder char* | "JPEG" | Zielformat des Bildes. Erlaubt sind die folgenden Angaben JPG, JPEG GIF, GIFF TIF, TIFF Alle anderen Angaben erzeugen ein JPEG-Bild. |
quality | int | kAntiAliasing | Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind: Antialiasing für alle Objekte: kAntiAliasing Voll auflösende Grafiken: kFullResGraphics Graustufen: kDrawGray Transparenz: kXPOff kXPLow kXPMedium kXPHigh kXPMaximum JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGLowQuality kJPEGGoodQuality kJPEGExcellentQuality kJPEGGreatQuality JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGBaseline kJPEGProgressive Alpha Kanal: kAddAlpha Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist: kAntiAliasing + kAddAlpha |
resolution | float | 72.0 | Auflösung des Previews |
Erzeuge ein 100x100 Preview des Skriptrahmens.
int main () { Image img = image::snapshot_frame (gFrame, 100);
showmessage ("Status : %d\nGröße : %d", image::error (img), image::bytes (img));
image::release (prv); return 0; }
static int image::release(Image img)
Wenn Bilder nicht mehr benötogt werden, müssen unbedingt die Bilddaten gelöscht werden!
Name | Typ | Default | Beschreibung |
img | Image | - | Zu löschendendes Bild |
image::release (img);
static int image::error(Image img)
Fehlerstatus des Bildes ermitteln. Nach dem Einlesen oder Konvertieren eines Bildes sollte erfragt werden, ob die jeweilige Aktion erfolgreich war.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
img | Image | - | Bild, dessen Status ermittelt werden soll |
static int image::bytes(Image img)
Wie groß ist das Bild in Bytes? Diese Angabe ist inbesondere dann wichtig, wenn das Bild auf einer Datenbank gespeichert werden soll und dort für die Bilddaten nur begrenzt Platz zur Verfügung steht. Um ein Bild zu Verkleinern verwenden Sie die Funktion preview und machen dort entsprechend kleine Angaben zur Bildgröße, Farbtiefe und Auflösung. Kleiner Bilder können Sie möglicherweise auch durch die Wahl eines anderen Bildformates ("PNG" oder "JPG") erreichen.
Name | Typ | Default | Beschreibung |
Return | int | Größe des Bildes in Bytes | |
img | Image | - | Bild, dessen Größe ermittelt werden soll |
static int image::save(
Image img,
char* path,
int rmvOld = 0)
Sichern eines Bildes in eine Datei. Existiert der Zielordner nicht, wird er angelegt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
img | Image | - | Bild, das gesichert werden soll |
path | String oder char* | - | Zielpfad und -name. Die Endung der Datei sollte so gewählt sein, dass sie zum Bildformat passt. Existiert der Zielordner nicht, wird er angelegt. |
rmvOld | int | 0 | Soll eine evtl. bestehende Datei zuvor gelöscht werden?
0 : Nicht löschen Sonst : Zeigt der Zielpfad auf eine existierende Datei, wird diese Datei zuvor gelöscht. Ordner werden nicht gelöscht. |
static int image::count_paths(ItemRef frameRef = 0)
Anzahl der Freistellpfade im Bild das Rahmens. Enthält der Rahmen kein Bild oder das Bild keine Pfade gibt der Aufruf 0 zurück.
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Freistellpfade im Bild des Rahmens. Enthält der Rahmen kein Bild oder das Bild keine Pfade gibt der Aufruf 0 zurück. | |
frameRef | ItemRef | 0 | Rahmen, dessen Bild getestet wird. Fehlt die Angabe oder ist leer, wird der Rahmen des aufrufenden Skriptes (gFrame) verwendet. Ist auch gFrame nicht defininiert, wird der erste im aktuellen Dokument ausgewählte Rahmen verwendet. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static char* image::pathname(ItemRef frameRef = 0, int index = 0)
Name eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird ein Leerstring zurückgegeben.
Name | Typ | Default | Beschreibung |
Return | char* | Name eines Freistellpfades im platzierten Rahmenbild.
Ist kein Bild platziert oder enthält das Bild keine Freistellpfade,
wird ein Leerstring zurückgegeben.
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
frameRef | ItemRef | 0 | Rahmen, dessen Bild getestet wird 0 : aktueller Skriptrahmen |
index | int | 0 | 0-basierter Index des Freistellpfades Achtung: Der Default-Freistellpfad kDefaultClipIndex kann hier nicht ermittelt werden. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::pathindex(ItemRef frameRef, char* name)
Index eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird -1 zurückgegeben.
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter Index eines Freistellpfades im platzierten Rahmenbild. Ist kein Bild platziert oder enthält das Bild keine Freistellpfade, wird -1 zurückgegeben. | |
frameRef | ItemRef | - | Rahmen, dessen Bild getestet wird. Fehlt die Angabe oder ist leer, wird der Rahmen des aufrufenden Skriptes (gFrame) verwendet. Ist auch gFrame nicht defininiert, wird der erste im aktuellen Dokument ausgewählte Rahmen verwendet. |
name | String oder char* | - | Name des gesuchten Freistellpfades |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::clipindex(ItemRef frameRef = 0, int resolveDefault = 0)
Ermittle den 0-basierten Index des aktiven Freistellpfades. Hat der Rahmen kein Bild oder ist kein Photoshop-Freistellpfad aktiviert, liefert der Aufruf das Ergebnis -1.
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter Index des aktiven Freistellpfades im platzierten Rahmenbild. -1 : Fehler oder kein Freistellpfad gesetzt kDefaultClipIndex (-4) : Default-Freistellpfad |
|
frameRef | ItemRef | 0 | Rahmen, dessen Bild getestet wird. 0 : aktueller Skriptrahmen |
resolveDefault | int | 0 | Soll der Pfadindex auch dann bestimmt werden, wenn der Default-Freistellpfad verwendet wird? 0 : Nein (Es bleibt bei der Antwort kDefaultClipIndex) 1 : Ja. Es wird ermittelt, welchen 0-basierten Index der Default-Pfad hat. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::clippath(
ItemRef frameRef,
float* l = 0,
float* t = 0,
float* r = 0,
float* b = 0)
Ermittle die Boundingbox des aktuellen Freistellpfades. Die Angaben erfolgen relativ zum Bildrahmen. Hat der Rahmen kein Bild oder ist kein Freistellpfad gesetzt, gibt die Funktion einen Fehlercode zurück.
Die Funktion ist identisch mit frame::image_getpath_bbox.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Boundingbox konnte ermittelt werden Fehlerstatus : Der Rahmen ist kein Grafikrahmen oder enthält kein Bild oder das Bild keinen Freistellpfad |
|
frameRef | ItemRef | - | Verweis auf einen gültigen Grafikrahmen des Dokumentes |
l | float* | 0 | links |
t | float* | 0 | oben |
r | float* | 0 | rechts |
b | float* | 0 | unten |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::setclip(
ItemRef frameRef = 0,
int index = 0,
int flags = 4,
int clipToFrame = 0,
float tolerance = 0.0,
float minPathSize = 0.0,
float Inset = 0.0)
Anwenden eines Freistsellpfades eines Bildes. Der Freistellpfad muss im Bilddokumemt definiert sein.
Unter comet_pdf wird auch bei einem Pfadindex > 0 der erste Freistellpfad des Bildes verwendet. Alle weiteren Funktionsparameter
werden ignoriert.
Um Freistellpfade auch in comet_pdf zu setzen, verwenden Sie die Funktion setclip2.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
pathindex | int | kIgnoreClipping | 0-basierter Index des Freistellpfades kIgnoreClipping : Freistellpfad unverändert lassen. kResetClipping : Freistellpfad beim Einfügen des Bildes zurücksetzen. kDefaultClipIndex : Default-Freistellpfad verwenden. comet_pdf verwendet dann den Index 0. >= 0 : 0-basierter Pfadindex |
flags | int | kAllowHolesFlag | Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert. kInvertFlag : Invert the resulting path by combining with a path equal to the bounds of the image. kAllowHolesFlag : Ab v4.0.5 R18123 ignoriert! kRestrictToFrameFlag : Ab v4.0.5 R18123 ignoriert! Der Parameter wird von comet_pdf nicht angewendet. |
cliptoFrame | int | 0 | Soll der Freistellpfad als Rahmenbegrenzung verwendet werden? 0 : Bestehenden Rahmen behalten 1 : Freistellpfad als Rahmen verwenden |
tolerance | float | 0.0 | Die Angabe wird ab v4.0.5 R18123 ignoriert! |
minPathSize | float | 0.0 | Die Angabe wird ab v4.0.5 R18123 ignoriert! |
inset | float | 0.0 | Pfad um den angegebenen Abstand verkleinern. Angabe in Punkten. Von comet_pdf wird die Angabe ignoriert. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::setclip2(
ItemRef frameRef = 0,
int pathindex = 0,
char* pathname = 0,
int flags = 4,
int clipToFrame = 0,
float tolerance = 0.0,
float minPathSize = 0.0,
float Inset = 0.0)
Anwenden eines Freistsellpfades eines Bildes. Der Freistellpfad muss im Bilddokumemt definiert sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
pathindex | int | kIgnoreClipping | 0-basierter Index des Freistellpfades kIgnoreClipping : Freistellpfad unverändert lassen. kResetClipping : Freistellpfad beim Einfügen des Bildes zurücksetzen. kDefaultClipIndex : Default-Freistellpfad verwenden. comet_pdf verwendet dann den Index 0. >= 0 : 0-basierter Pfadindex |
pathname | String oder char* | "" | Name des Freistellpfades Ist pathindex >= 0 wird die Angabe ignoriert. |
flags | int | kAllowHolesFlag | Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert. kInvertFlag : Invert the resulting path by combining with a path equal to the bounds of the image. kAllowHolesFlag : Ab v4.0.5 R18123 ignoriert! kRestrictToFrameFlag : Ab v4.0.5 R18123 ignoriert! Der Parameter wird von comet_pdf nicht angewendet. |
cliptoFrame | int | 0 | Soll der Freistellpfad als Rahmenbegrenzung verwendet werden? 0 : Bestehenden Rahmen behalten 1 : Freistellpfad als Rahmen verwenden |
tolerance | float | 0.0 | Die Angabe wird ab v4.0.5 R18123 ignoriert! |
minPathSize | float | 0.0 | Die Angabe wird ab v4.0.5 R18123 ignoriert! |
inset | float | 0.0 | Pfad um den angegebenen Abstand verkleinern. Angabe in Punkten. Von comet_pdf wird die Angabe ignoriert. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::count_alpha_channels(ItemRef frameRef = 0)
Wieviel Alpha-Kanäle hat das aktuell im Rahmen verwendete Bild?
Beachten Sie bitte, dass der InDesign-Dialog Objekt -%gt; Beschneidungspfad -> Optionen im Dropdowdown die Auswahl Alpha-Kanal auch dann anzeigen kann, wenn das Bild gar keinen Alphakanal hat
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Alpha-Kanäle im Bild des Rahmens 0 : keine Alphakanäle verfügbar |
|
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
int main () { int i; char alpha [256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n", i, image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }
static char* image::alpha_channel_name(ItemRef frameRef = 0, int nth = 0)
Name des n-ten Alphakanales des Bildes eines Rahmens.
Name | Typ | Default | Beschreibung |
Return | char* | Name des n-ten Alphakanales des Bildes eines Rahmens.
Das Ergebnis wird einem erneuten Aufruf der Funktion überschrieben.
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
nth | int | 0 | 0-basierter Index des Alphakanales, dessen Name ermittelt werden soll. |
int main () { int i; char alpha [256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n", i, image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }
static int image::alpha_channel_index(ItemRef frameRef, char* name)
Ermittle den Index eines Alpha-Kanales in einem Bild eines Rahmens
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter Index eines gegebenen Alpha-Kanales des Bildes eines Rahmens -1 : Kanal nicht gefunden |
|
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
name | String oder char* | - | Name des Kanales nach dem gesucht wird. |
int main () { int i; char alpha [256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n", i, image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }
static int image::alphaindex(ItemRef frameRef = 0)
Ermittle den Index des aktiven Alpha-Kanales eines Bildes
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter aktueller Alphakanal -1 : Fehler oder kein Alpha-Kanal gesetzt |
|
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen. |
int main () { int i; char alpha [256];
for (i = 0; i < image::count_alpha_channels (gFrame); i++) { wlog ("", " Channel %d : '%s'\n", i, image::alpha_channel_name (gFrame, i)); }
wlog ("", "(Pre) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
image::set_alpha_channel (gFrame, 2, 4, 0, 0.0, 0.0, 0.0, 12);
wlog ("", "(Post) Current alpha channel : %d (%s)\n", image::alphaindex (gFrame), image::alpha_channel_name (gFrame, image::alphaindex (gFrame)));
return 0; }
static int image::set_alpha_channel(
ItemRef frameRef = 0,
int index = 0,
int flags = 4,
int clipToFrame = 0,
float tolerance = 0.0,
float minPathSize = 0.0,
float Inset = 0.0,
int treshold = 255)
Anwenden eines Alphakanales eines Bildes.
Unter comet_pdf wird auch bei einem Pfadindex > 0 der erste Alphakanal des Bildes verwendet. Alle weiteren Funktionsparameter
werden ignoriert.
Um andere Alphakänale auch in comet_pdf setzen zu können, verwenden Sie bitte die Funktion setalpha2.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
index | int | 0 | 0-basierter Index des Pfades, siehe alpha_channel_index kResetClipping Alphakanal nicht anwenden >= 0 : 0-basierter Pfadindex |
flags | int | kAllowHolesFlag | Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert werden. kInvertFlag Invert the resulting path by combining with a path equal to the bounds of the image. kAllowHolesFlag For edge detection, do we remove the holes or leave them in. kRestrictToFrameFlag Bild außdem auf den Bildrahmen beschneiden. Der Parameter wird von comet_pdf nicht angewendet. |
cliptoFrame | int | 0 | Soll der Alphakanal als Rahmenbegrenzung verwendet werden? 0 : Bestehenden Rahmen behalten 1 : Rahmen ändern |
tolerance | float | 0.0 | A tolerance value in the range of 0.0 to 10.0 specifying how close to the original path we must be if we smooth
the path. 0.0 indicates a perfect match. Smoothing may simplify the path, reducing the number of points. Der Parameter wird von comet_pdf nicht angewendet. |
minPathSize | float | 0.0 | Subpaths smaller than the minPathSize will be deleted. Der Parameter wird von Indesign® Server und comet_pdf nicht angewendet. |
inset | float | 0.0 | How far to inset the path. Given in points. Der Parameter wird von comet_pdf nicht angewendet. |
treshold | int | 255 | Schwellenwert im Bereich 0-255. Der Parameter wird von comet_pdf nicht angewendet. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::setalpha2(
ItemRef frameRef = 0,
int pathindex = 0,
char* pathname = 0,
int flags = 4,
int clipToFrame = 0,
float tolerance = 0.0,
float minPathSize = 0.0,
float Inset = 0.0,
int treshold = 255)
Anwenden eines Alphakanales eines Bildes.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
pathindex | int | 0 | 0-basierter Index des Kanales, siehe alpha_channel_index kResetClipping Alphakanal nicht anwenden >= 0 : 0-basierter Pfadindex. Pfadindexe > 0 werden von comet_pdf ignoriert und stattdessen der Wert pathname verwendet. |
pathname | String oder char* | "" | Name des Alphakanales Von InDesign® wird diese Angabe ignoriert! |
flags | int | kAllowHolesFlag | Parameter für die Art der Bildfreistellung. Die Werte werden als Bitfeld addiert werden. kInvertFlag Invert the resulting path by combining with a path equal to the bounds of the image. kAllowHolesFlag For edge detection, do we remove the holes or leave them in. kRestrictToFrameFlag Bild außdem auf den Bildrahmen beschneiden. Der Parameter wird von comet_pdf nicht angewendet. |
cliptoFrame | int | 0 | Soll der Alphakanal als Rahmenbegrenzung verwendet werden? 0 : Bestehenden Rahmen behalten 1 : Rahmen ändern |
tolerance | float | 0.0 | A tolerance value in the range of 0.0 to 10.0 specifying how close to the original path we must be if we smooth
the path. 0.0 indicates a perfect match. Smoothing may simplify the path, reducing the number of points. Der Parameter wird von comet_pdf nicht angewendet. |
minPathSize | float | 0.0 | Subpaths smaller than the minPathSize will be deleted. Der Parameter wird von Indesign® Server und comet_pdf nicht angewendet. |
inset | float | 0.0 | How far to inset the path. Given in points. Der Parameter wird von comet_pdf nicht angewendet. |
treshold | int | 255 | Schwellenwert im Bereich 0-255. Der Parameter wird von comet_pdf nicht angewendet. |
Hier finden Sie ein Beispiel zur Verwendung von Freistellpfaden.
static int image::count_layers(ItemRef frameRef = 0)
Wieviel Ebenen hat das Bild des Rahmens?
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Ebenen im Bild. Seperator-, Absatztrenner- und die sog. Adjustment-Ebenen werden dabei mitgezählt. | |
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
int main () { int cl = image::count_layers (gFrame); int i; int orgvis, curvis; char lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n", image::layerindex (gFrame, lname), orgvis, curvis, lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }
static char* image::layername(
ItemRef frameRef,
int index,
int* orgVis = 0,
int* curVis = 0)
Ermittle den Namen einer Bildebene zu einem gegebenen Ebenen-Index.
Name | Typ | Default | Beschreibung |
Return | char* | Name der Ebene oder leer ("").
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
index | int | - | 0-basierter Ebenenindex |
orgVis | int* | 0 | Wurde die Ebene gefunden, enthält die Variable nach der Ausführung die Angabe zu aktuellen Sichtbarkeit der Ebene 0 : unsichtbar 1 : sichtbar 2 : kann nicht ermittelt werden |
orgVis | int* | 0 | Im Bild eingestellte Sichtbarkeit der Ebene 0 : unsichtbar 1 : sichtbar 2 : kann nicht ermittelt werden |
int main () { int cl = image::count_layers (gFrame); int i; int orgvis, curvis; char lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n", image::layerindex (gFrame, lname), orgvis, curvis, lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }
static int image::layerindex(
ItemRef frameRef,
char* name,
int* orgVis = 0,
int* curVis = 0)
Ermittle den Index einer Bildebene.
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter Ebenenindex oder -1 | |
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
name | String oder char* | - | Name der Ebene |
orgVis | int* | 0 | Wurde die Ebene gefunden, enthält die Variable nach der Ausführung die Angabe zu aktuellen Sichtbarkeit der Ebene 0 : unsichtbar 1 : sichtbar 2 : kann nicht ermittelt werden |
orgVis | int* | 0 | Im Bild eingestellte Sichtbarkeit der Ebene 0 : unsichtbar 1 : sichtbar 2 : kann nicht ermittelt werden |
int main () { int cl = image::count_layers (gFrame); int i; int orgvis, curvis; char lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n", image::layerindex (gFrame, lname), orgvis, curvis, lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }
static int image::show_layer(
ItemRef frameRef,
char* layerName,
int doShow = 1)
Bildebene sichtbar machen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | 0 | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
layerName | String oder char* | 0 | Name einer existierenden Bildebene 0 oder "" : Sichtbarkeit der Ebenen wie im Original |
doShow | int | 1 | Ebene sichtbar machen oder verstecken? ist der Ebenenname leer, wird diese Angaben ignoriert. 1 : sichtbat machen 0 : verstecken |
int main () { int cl = image::count_layers (gFrame); int i; int orgvis, curvis; char lname [512];
if (cl == 0) { wlog ("", "# No layers found\n"); return 0; }
for (i = 0; i < cl; i++) { strcpy (lname, image::layername (gFrame, i, &orgvis, &curvis)); wlog ("", "# Layer %d : (%d, %d) '%s'\n", image::layerindex (gFrame, lname), orgvis, curvis, lname); }
image::show_layer (gFrame, "Maße RU"); return 0; }
static int image::barcode(
ItemRef gFrame,
char* text,
char* type,
int width = 144,
int height = 92,
int xoff = 10,
int yoff = 10,
...)
Erzeuge einen maschinenlesbaren Code (Barcode, EAN, QR-Code, ...), Vom angegebenen Text wird ein Code im gewünschten Format erzeugt und ohne weitere Verknüpfung als Postscript-Bild in den Dokumentrahmen eingebettet. Es werden keine zusätzlichen Bild-Dokumente erzeugt.
Achtung: Direkt eingebettete Postscript-Bildern werden beim IDML-Export/Import von InDesign® verändert:
Die Funktion ist ein nice to have und nicht Bestandteil des WERK II Supports.
Bitte prüfen Sie die Codes vor ihrer Verwendung auf Gültigkeit. Falsche Codes können zum Absturz von InDesign® führen! Plugin-seitig werden keine Prüfungen der Barcodes vorgenommen. Ledigllich EAN-13 werden (ab v4.1.6 R25001) auf ihre Gültigkeit geprüft.
Und ein Drittes: comet_pdf verarbeitet nur Rasterbilder. Um die hier erzeugten Postscript-Dateien verwenden zu können, müssen die Dateien von comet_pdf zuerst in PDF konvertiert werden. Dazu benötigt comet_pdf weitere Dritt-Software.
Die Funktion basiert auf der Implementerierung des "Barcode Writer in Pure PostScript" von Terry Burton und unterliegt folgender Lizenz:
Barcode Writer in Pure PostScript
http:bwipp.terryburton.co.uk
Copyright (c) 2004-2014 Terry Burton
Permission is hereby granted, free of charge, to any
person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the
Software without restriction, including without
limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software
is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice
shall be included in all copies or substantial portions
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
Folgende Barcodes können generiert werden :
Codename | Skriptbezeichner (type) | Beispiel |
EAN-5 | ean5 | 90200![]() |
EAN-8 | ean8 | 01335583![]() |
EAN-8 Composite | ean8composite | 12345670|(21)A12345678![]() |
EAN-13 | ean13 | 9771473968012![]() |
EAN-13 Composite | ean13composite | 331234567890|(99)1234-abcd![]() |
EAN-2 | ean2 | 05![]() |
QR Code. Bitte beachten Sie auch die weiterführenden Beschreibungen zum QRCode. | qrcode | Irgendwas![]() |
Data Matrix | datamatrix | This is Data Matrix!![]() |
MaxiCode | maxicode |
[\)>^03001^02996152382802¬ ^029840^029001^0291Z00004951¬ ^029UPSN^02906X610^029159¬ ^0291234567^0291/1^029^029Y¬ ^029634 ALPHA DR¬ ^029PITTSBURGH^029PA^029^004 ![]() |
Aztec Code | azteccode | This is Aztec Code![]() |
UPC-A | upca | 78858101497![]() |
UPC-A Composite | upcacomposite | 01600033610|(99)1234-abcd![]() |
UPC-E | upce | 0123456![]() |
UPC-E Composite | upcecomposite | 0121230|(15)021231 |
ISBN | isbn | 978-1-56592-4796 54495![]() |
ISMN | ismn | 979-0-2600-0043![]() |
ISSN | issn | 0317-8471 00 05![]() |
Code One | codeone | Das ist eine Nachricht!![]() |
Code 16K | code16k | Abcd-1234567890-wxyZ![]() |
Code 39 | code39 | THIS IS CODE 39 |
Code 39 Extended | code39ext | Code39 Ext! |
Code 128 | code128 | Count01234567^FNC2! |
Code 49 | code49 | MULTIPLE ROWS IN CODE 49![]() |
GS1-14 | ean14 | (01)04601234567893 |
GS1 Composite 2D Component | gs1-cc | (01)95012345678903(3103)000123 |
GS1 Data Matrix | gs1datamatrix | (01)03453120000011(17)120508(10)¬ ABCD1234(410)9501101020917 ![]() |
GS1-128 | gs1-128 | (01)95012345678903(3103)000123 |
GS1-128 Composite | gs1-128composite | (00)030123456789012340|(02)130¬ 12345678909(37)24¬ (10)1234567ABCDEFG ![]() |
GS1 DataBar Omnidirectional | databaromni | (01)24012345678905 |
GS1 DataBar Omnidirectional Composite | databaromnicomposite | (01)03612345678904|(11)990102 |
GS1 DataBar Stacked | databarstacked | (01)24012345678905 |
GS1 DataBar Stacked Composite | databarstackedcomposite | (01)03412345678900|(17)010200 |
GS1 DataBar Stacked Omnidirectional | databarstackedomni | (01)24012345678905 |
GS1 DataBar Stacked Omnidirectional Composite | databarstackedomnicomposite | (01)03612345678904|(11)990102 |
GS1 DataBar Truncated | databartruncated | (01)24012345678905 |
GS1 DataBar Truncated Composite | databartruncatedcomposite | (01)03612345678904|(11)990102 |
GS1 DataBar Limited | databarlimited | (01)15012345678907 |
GS1 DataBar Limited Composite | databarlimitedcomposite | (01)03512345678907|(21)abcdefghijklmnopqrstuv |
GS1 DataBar Expanded | databarexpanded | (01)95012345678903(3103)000123 |
GS1 DataBar Expanded Composite | databarexpandedcomposite | (01)93712345678904(3103)¬ 001234|(91)1A2B3C4D5E |
GS1 DataBar Expanded Stacked | databarexpandedstacked | (01)95012345678903(3103)000123 |
GS1 DataBar Expanded Stacked Composite | databarexpandedstackedcomposite | (01)00012345678905(10)¬ ABCDEF|(21)12345678 |
SSCC-18 | sscc18 | (00)006141411234567890 |
Italian PharmaCode | code32 | 01234567 |
Pharmazentralnummer | pzn | 123456 |
Interleaved 2 of 5 (ITF) | interleaved2of5 | 2401234567 |
ITF-14 | itf14 | 04601234567893![]() |
Pharmaceutical Binary Code | pharmacode | 117480![]() |
Two-track Pharmacode | pharmacode2 | 117480 |
Code 25 | code2of5 | 01234567 |
Code 11 | code11 | 0123456789 |
BC412 | bc412 | BC412 |
Rationalized Codabar | rationalizedCodabar | A0123456789B |
Deutsche Post Identcode | identcode | 563102430313![]() |
Deutsche Post Leitcode | leitcode | 21348075016401 |
United States Postal Service Intelligent Mail | onecode | 0123456709498765432101234567891![]() |
United States Postal Service POSTNET | postnet | 01234![]() |
United States Postal Service PLANET | planet | 01234567890 |
Royal Mail 4 State Customer Code (RM4SCC) | royalmail | LE28HS9Z |
AusPost 4 State Customer Code | auspost | 5956439111ABA 9 |
Royal Dutch TPG Post KIX 4-State Barcode | kix | 1231FZ13XHS |
Japan Post 4 State Customer Code | japanpost | 6540123789-A-K-Z |
MSI Modified Plessey | msi | 0123456789 |
Plessey UK | plessey | 01234ABCD |
Telepen | telepen | 123456 |
PosiCode | posicode | ABC123 |
Codablock F | codablockf |
CODABLOCK F 34567890¬ 123456789010040digit |
Channel Code | channelcode | 3493 |
Flattermarken | flattermarken | 12345 |
Raw bar space succession for custom symbologies | raw | 331132131313411122¬ 131311333213114131131221323 ![]() |
Raw DAFT succession for custom 4 state symbologies | daft | FATDAFTDAD |
Miscellaneous symbols | symbol | fima |
PDF417 | pdf417 | This is PDF417 |
MicroPDF417 | micropdf417 | MicroPDF417 |
HIBC Code 39 | hibccode39 | A123BJC5D6E71 |
HIBC Code 128 | hibccode128 | A123BJC5D6E71 |
HIBC Data Matrix | hibcdatamatrix | A123BJC5D6E71 |
HIBC PDF417 | hibcpdf417 | A123BJC5D6E71 |
HIBC MicroPDF417 | hibcmicropdf417 | A123BJC5D6E71 |
HIBC QR Code | hibcqrcode | A123BJC5D6E71![]() |
HIBC Codablock F | hibccodablockf | A123BJC5D6E71![]() |
QRCodes werden größer, je mehr Daten sie enthalten. Es können Strings bis zu einer Länge von 2953 Bytes (nicht Zeichen!) kodiert werden. Um eine feste Größe von QRCodes zu erhalten, können die Codes mit einer Versionsnummer (siehe Version) generiert werden. Erlaubt sind Versionsnummern von 1-40. Die Größe der Codes ergibt sich daraus wie folgt:
Größe des Quadrats = 17 + (Version * 4) Module
Ein QRCode Version 1 ist also ein Quadrat aus 21 x 21 Modulen, Version 2 ist 25 x 25 groß, usw.. Der größte QRCode ist also 177 x 177 Module groß.
Standardmäßig werden die Module als 2pt-große Quadrate erzeugt. Ein Ein QRCode Version 1 ist also 42 pt groß.
QRCodes können mit einer Fehlerkorrektur versehen werden (Parameter eclevel, siehe unten). Durch die Fehlerkorrektur kann sich die Anzahl der kodierten Zeichen weiter verringern. Die folgenden Tabelle zeigen Ihnen, wieviel Zeichen maximal kodiert werden können:
Fehlerkorrektur Low, 7% Verlust können korrigiert werden | |
Version | Maximale Bytes |
1-10 | 17, 32, 53, 78, 106, 134, 154, 192, 230, 271 |
11-20 | 321, 367, 425, 458, 520, 586, 644, 718, 792, 858 |
21-30 | 929, 1003, 1091, 1171, 1273, 1367, 1465, 1528, 1628, 1732 |
31-40 | 1840, 1952, 2068, 2188, 2303, 2431, 2563, 2699, 2809, 2953 |
Fehlerkorrektur Medium, 15% Verlust können korrigiert werden | |
Version | Maximale Bytes |
1-10 | 14, 26, 42, 62, 84, 106, 122, 152, 180, 213 |
11-20 | 251, 287, 331, 362, 412, 450, 504, 560, 624, 666 |
21-30 | 711, 779, 857, 911, 997, 1059, 1125, 1190, 1264, 1370 |
31-40 | 1452, 1538, 1628, 1722, 1809, 1911, 1989, 2099, 2213, 2331 |
Fehlerkorrektur High, 20% Verlust können korrigiert werden | |
Version | Maximale Bytes |
1-10 | 11, 20, 32, 46, 60, 74, 86, 108, 130, 151, |
11-20 | 177, 203, 241, 258, 292, 322, 364, 394, 442, 482 |
21-30 | 509, 565, 611, 661, 715, 751, 805, 868, 908, 982 |
31-40 | 1030, 1112, 1168, 1228, 1283, 1351, 1423, 1499, 1579, 1663 |
Fehlerkorrektur Quality, 30% Verlust können korrigiert werden | |
Version | Maximale Bytes |
1-10 | 7, 14, 24, 34, 44, 58, 64, 84, 98, 119 |
11-20 | 137, 155, 177, 194, 220, 250, 280, 310, 338, 382 |
21-30 | 403, 439, 461, 511, 535, 593, 625, 658, 698, 742 |
31-40 | 790, 842, 898, 958, 983, 1051, 1093, 1139, 1219, 1273 |
Name | Typ | Default | Beschreibung | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Return | int | 0 oder Fehlercode | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
frameRef | ItemRef | - | Gültige Bildrahmenreferenz 0 : aktueller Skriptrahmen |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
text | String oder char* | - | Zu codierender Text. Beispiele für gültige Codes finden Sie hier.. Klammern und Backslashes im Text werden automatisch kodiert. Weitere Kodierungen siehe hier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
type | String oder char* | - | Code-Typ, siehe hier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
width, height | int, int | 144, 92 | Größe der Ausgabefläche. Der erzeugte Code wird links unten in dieser Fläche platziert.
Zu kleine Werte können den Code oben und rechts abschneiden, zu große Werte erzeugen Weißraum.
QR-Codes Die Anzahl der Module (der kleinen Quadrate des Codes) hängt von der Länge des codierten Textes ab. Hier finden Sie dazu weitere Infos: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
xoff, yoff | int, int | 10, 10 | Abstand des Codes von der linken unteren Bildecke. Die Angaben beschreiben die Position des eigentlichen Codes. Zusätzliche Textangaben könne unterhalb und links dieser Position erscheinen. Auch hier müssen Sie unter Umständen ein wenig experimentieren, bis Sie die richtigen Angaben gefunden haben. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
... | ... | leer | Optionale Parameter als Key/Value-Paare mit Angaben zur Gestaltung des erzeugten Codes.
Die folgende Tabelle beschreibt alle Optionen zur Gestaltung des erzeugten Codes. Bitte beachten Sie, dass nicht alle Optionen für jedes Code-Format sinnvoll sind. Nicht unterstützte Optionen werden ignoriert. Bitte beachten Sie außerdem, dass auch für alle im Folgenden beschriebenen Optionen die oben zitierten Lizenzeinschränkungen gelten: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND ... Die Option includetext ist defaultmäßig immer aktiviert. Alle anderen Optionen verwenden den Standard des jeweiligen Codes.
|
Für gleichgroße orange QRCodes mit URLs von maximal 100 Zeichen Länge und einer Fehlerkorrektur von 7% benötigen Sie fogenden Angaben (74 = 2 * (17 + 5 * 4)):
image::barcode (gFrame, "your URL", "qrcode", 74, 74, 0, 0, "options", "version=5 eclevel=L barcolor=FF8800", "filetype", "ps");
Hier ein EAN 13-Code ohne Beschriftung:
image::barcode (gFrame, "9771473968012", "ean13", 144, 92, 0, 0, "options", "suppresstext", "filetype", "ps");
static int image::qrcode(
ItemRef gFrame,
int type,
ItemRef colorRef,
char* content1,
char* content2 = 0,
char* content3 = 0,
char* content4 = 0,
char* content5 = 0,
char* content6 = 0,
char* content7 = 0,
char* content8 = 0,
char* content9 = 0,
char* content10 = 0,
char* content11 = 0,
char* content12 = 0,
char* content13 = 0)
Erzeuge eine QR-Code. Die Anweisung entspricht dem Menü
. Zusätzlich kann, anders als im Menübefehl, ein geänderter QR-Code an die Rahmengröße angepasst werden.Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | - | Gültige Rahmenreferenz 0 : aktueller Skriptrahmen |
type | int | - | Typ des QR-Codes. Mit negativen Werten wird der erzeugte Code an die
Rahmengröße angepaßt und im Rahmen zentriert. ±kQRCodeText = 1 : Normaler QR-Code ±kQRCodeEmail = 2 : EMail ±kQRCodeHyperlink = 3 : Hyperlink ±kQRCodeSMS = 4 : SMS ±kQRCodeVCard = 5 : Visitenkarte |
colorRef | ItemRef | - | Farbe des QR-Codes 0 : Schwarz sonst : mit color::define u.ä erhaltene Referenz auf eine Dokumentfarbe |
content1-13 | char* oder String | 0 | Textinhalt des QR-Codes. Der erste Inhaltsstring darf nicht leer sein!
Die Anzahl der benötigten Strings hängt vom Typ des QR-Codes ab. kQRCodeText content1 Text des Codes kQRCodeEmail content1 EMail-Adresse content2 Betreff content3 Nachricht kQRCodeHyperlink content1 Hyperlink kQRCodeSMS content1 Telefonnummer content2 Nachricht kQRCodeVCard content1 Vorname content2 Nachname content3 Titel content4 Telefonnummer content5 Handy content6 E-Mail content7 URL content8 Unternehmen content9 Adresse content10 Stadt content11 Bundesland content12 Postleitzahl content13 Land |
Erzeuge den QR-Code einer Visitenkarte (kQRCodeVCard) und lese deren Inhalt aus dem erzeugten Bild wieder ein.
#include "internal/type.h"
int main () { ItemRef orange = item::alloc (); String firstname = string::alloc (); String lastname = string::alloc (); String country = string::alloc (); String zip = string::alloc (); String city = string::alloc (); String vcard;
color::define_rgb ("Orange", 255, 128, 10, 1, orange); image::qrcode (gFrame, -kQRCodeVCard, orange, "Paul", // First name "Seidel", // Last name 0, // Job title 0, // Tel no 0, // Cell no "paul@priint.com", // email "priint.com", // web site "WERK II GmbH", // organization "Ruth-Marx-Str. 9", // street "Tübingen", // city "Baden-Württemberg", // state "72072", // zip "D"); // country
wlog ("", "# Type : %d\n", image::qrcode_gettype (gFrame)); vcard = image::qrcode_getcontent (gFrame, firstname, lastname, 0, 0, 0, 0, 0, 0, 0, city, 0, zip, country);
wlog ("", "# %s %s : %s-%s %s\n", firstname, lastname, country, zip, string::upper (city)); wlog ("", "# %s\n", vcard);
return 0; }
static int image::qrcode_gettype(ItemRef gFrame)
Typ eines QR-Codes. Ermittle den Typ eines QR-Codes.
Name | Typ | Default | Beschreibung |
Return | int | Typ des QR-Codes 0 : Kein QR-Code oder Fehler 1 (kQRCodeText) : Text 2 (kQRCodeEmail) : EMail 3 (kQRCodeHyperlink) : Hyperlink 4 (kQRCodeSMS) : SMS 5 (kQRCodeVCard) : Visitenkarte |
|
frameRef | ItemRef | - | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
static char* image::qrcode_getcontent(
ItemRef gFrame,
char* content1 = 0,
char* content2 = 0,
char* content3 = 0,
char* content4 = 0,
char* content5 = 0,
char* content6 = 0,
char* content7 = 0,
char* content8 = 0,
char* content9 = 0,
char* content10 = 0,
char* content11 = 0,
char* content12 = 0,
char* content13 = 0)
Textinhalt eines QR-Codes. Ermittle den vom QR-Code kodierten Text.
Name | Typ | Default | Beschreibung |
Return | char* | Gesamter Textinhalt des QR-Codes.
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
frameRef | ItemRef | - | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
content1-13 | char* oder String | 0 | Textteile des QR-Codes. Die Rückgabewerte hängen vom Typ des QR-Code ab. kQRCodeText content1 Text des Codes kQRCodeEmail content1 EMail-Adresse content2 Betreff content3 Nachricht kQRCodeHyperlink content1 Hyperlink kQRCodeSMS content1 Telefonnummer content2 Nachricht kQRCodeVCard content1 Vorname content2 Nachname content3 Titel content4 Telefonnummer content5 Handy content6 E-Mail content7 URL content8 Unternehmen content9 Adresse content10 Stadt content11 Bundesland content12 Postleitzahl content13 Land |
#include "internal/type.h"
int main () { ItemRef orange = item::alloc (); String firstname = string::alloc (); String lastname = string::alloc (); String country = string::alloc (); String zip = string::alloc (); String city = string::alloc (); String vcard;
color::define_rgb ("Orange", 255, 128, 10, 1, orange); image::qrcode (gFrame, -kQRCodeVCard, orange, "Paul", // First name "Seidel", // Last name 0, // Job title 0, // Tel no 0, // Cell no "paul@priint.com", // email "priint.com", // web site "WERK II GmbH", // organization "Ruth-Marx-Str. 9", // street "Tübingen", // city "Baden-Württemberg", // state "72072", // zip "D"); // country
wlog ("", "# Type : %d\n", image::qrcode_gettype (gFrame)); vcard = image::qrcode_getcontent (gFrame, firstname, lastname, 0, 0, 0, 0, 0, 0, 0, city, 0, zip, country);
wlog ("", "# %s %s : %s-%s %s\n", firstname, lastname, country, zip, string::upper (city)); wlog ("", "# %s\n", vcard);
return 0; }
Das Beispiel beschreibt die Verwendung von Freistellpfaden.
#include "internal/types.h"
int showpaths (ItemRef frameRef) { int count = image::count_paths (gFrame); int i;
showmessage ("Verfügbare Pfade %d", count); for (i = 0; i < count; i++) { showmessage ("%d. %s", i, image::pathname (gFrame, i)); }
return 0; }
int main () { int index = image::clipindex (gFrame); int count = image::count_paths (gFrame); int err;
// Mögliche Freistellpfade zeigen if (count <= 0) return 0; else showpaths (gFrame);
// Aktuellen Freistellpfad zeigen if (index < 0) { index = -1; showmessage ("Kein Pfad gesetzt"); } else showmessage ("Gesetzter Pfad %d : %s", index+1, image::pathname (gFrame, index));
// Neuen Freistellpfad setzen if (index == count -1) index = -1; else index = (index + 1) % count; err = image::setclip ( gFrame, index, kAllowHolesFlag, 0, 0.0, 0.0); if (err) showerror ("setclip Fehler : %d", err);
return 0; }
Alphabetic index HTML hierarchy of classes or Java