status = csurface:SetMimeData(mime_type[, data$])
mime_type an die Oberfläche an. Um die Daten von
einer Oberfläche zu entfernen, rufen Sie diese Funktion auf, ohne das Argument
data$ anzugeben.
Die angehängten Bild- (oder Dateinamen-)Daten können später von Backends, die sie unterstützen (derzeit: PDF-, PS-, SVG- und Win32-Druckoberflächen), verwendet werden, um diese Daten auszugeben, anstatt einen Schnappschuss der Oberfläche zu erstellen. Dieser Ansatz ist tendenziell schneller und erfordert weniger Arbeitsspeicher und Speicherplatz.
Die erkannten MIME-Typen sind die folgenden: #CAIRO_MIME_TYPE_JPEG,
#CAIRO_MIME_TYPE_PNG, #CAIRO_MIME_TYPE_JP2, #CAIRO_MIME_TYPE_URI,
#CAIRO_MIME_TYPE_UNIQUE_ID, #CAIRO_MIME_TYPE_JBIG2,
#CAIRO_MIME_TYPE_JBIG2_GLOBAL, #CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID,
#CAIRO_MIME_TYPE_CCITT_FAX, #CAIRO_MIME_TYPE_CCITT_FAX_PARAMS.
Einzelheiten darüber, welche MIME-Typen verarbeitet werden können, finden Sie in den entsprechenden Backend-Oberflächendokumenten. Achtung: Die zugehörigen MIME-Daten werden verworfen, wenn Sie anschließend auf der Oberfläche zeichnen. Verwenden Sie diese Funktion mit Vorsicht.
Auch wenn ein Backend einen MIME-Typ unterstützt, bedeutet das nicht, dass Cairo immer die angehängten MIME-Daten verwenden kann. Wenn das Backend beispielsweise den Compositing-Vorgang, der zum Anwenden der MIME-Daten auf das Backend verwendet wird, nicht nativ unterstützt. In diesem Fall werden die MIME-Daten ignoriert. Um in allen Fällen ein Bild anzuwenden, ist es daher am besten, eine Bildoberfläche zu erstellen, die die dekodierten Bilddaten enthält, und dann die MIME-Daten daran anzuhängen. Dadurch wird sichergestellt, dass das Bild immer verwendet wird, während die MIME-Daten nach Möglichkeit weiterhin verwendet werden können.
Diese Funktion gibt bei Erfolg #CAIRO_STATUS_SUCCESS oder #CAIRO_STATUS_NO_MEMORY
zurück, wenn kein Slot für die Benutzerdaten zugewiesen werden konnte.