getImageColorSpace.patch (3,449 bytes)
Index: Scribus/scribus/plugins/scriptplugin/cmdgetprop.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdgetprop.cpp (revision 22756)
+++ Scribus/scribus/plugins/scriptplugin/cmdgetprop.cpp (working copy)
@@ -393,7 +393,43 @@
return lst;
}
+PyObject *scribus_getimagecolorspace(PyObject* /* self */, PyObject* args)
+{
+ char *Name = const_cast<char*>("");
+ if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+ return nullptr;
+ if (!checkHaveDocument())
+ return nullptr;
+ PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
+ if(i == nullptr)
+ return nullptr;
+ if(i->itemType() != PageItem::ImageFrame){
+ PyErr_SetString(PyExc_RuntimeError,
+ QObject::tr("Page item must be an ImageFrame", "python error").toLocal8Bit().constData());
+ return nullptr;
+ }
+ ScImage* pixm = &i->pixm;
+ if(pixm != nullptr){
+ if(pixm->width() != 0 && pixm->height() != 0){
+ ImageInfoRecord* iir = &pixm->imgInfo;
+ if(iir != nullptr){
+ int cspace = iir->colorspace;
+ /*
+ RGB = 0,
+ CMYK = 1,
+ Gray = 2,
+ Duotone = 3,
+ Monochrome = 4
+ */
+ return PyInt_FromLong(static_cast<long>(cspace));
+ }
+ }
+ }
+ return PyInt_FromLong(static_cast<long>(-1));
+}
+
+
/*! HACK: this removes "warning: 'blah' defined but not used" compiler warnings
with header files structure untouched (docstrings are kept near declarations)
PV */
@@ -411,5 +447,5 @@
<< scribus_getimgscale__doc__ << scribus_getimagefile__doc__
<< scribus_getposi__doc__ << scribus_getsize__doc__
<< scribus_getrotation__doc__ << scribus_getallobj__doc__
- << scribus_getobjectattributes__doc__;
+ << scribus_getobjectattributes__doc__ << scribus_getimagecolorspace__doc__;
}
Index: Scribus/scribus/plugins/scriptplugin/cmdgetprop.h
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdgetprop.h (revision 22756)
+++ Scribus/scribus/plugins/scriptplugin/cmdgetprop.h (working copy)
@@ -238,5 +238,15 @@
"));
PyObject *scribus_getobjectattributes(PyObject * /*self*/, PyObject* args);
+/*! docstring */
+PyDoc_STRVAR(scribus_getimagecolorspace__doc__,
+QT_TR_NOOP("getImageColorSpace([\"name\"]) -> integer\n\
+Returns the color space for an image in an Image Frame of \"name\".\n\
+0 RGB, 1 CMYK, 2 Gray, 3 Duotone, 4 Monochrome.\n\
+Returns the above numbers or -1 if there isn't an image\n\
+in the Image Frame.\n\
+"));
+PyObject *scribus_getimagecolorspace(PyObject * /*self*/, PyObject* args);
+
#endif
Index: Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (revision 22756)
+++ Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (working copy)
@@ -595,6 +595,7 @@
{const_cast<char*>("setTextAnnotation"), scribus_settextannotation, METH_VARARGS,tr(scribus_settextannotation__doc__)},
{const_cast<char*>("createPdfAnnotation"), scribus_createpdfannotation, METH_VARARGS,tr(scribus_createpdfannotation__doc__)},
{const_cast<char*>("isAnnotated"),(PyCFunction)scribus_isannotated, METH_VARARGS|METH_KEYWORDS,tr(scribus_isannotated__doc__)},
+ {const_cast<char*>("getImageColorSpace"), scribus_getimagecolorspace, METH_VARARGS, tr(scribus_getimagecolorspace__doc__)},
{nullptr, (PyCFunction)(nullptr), 0, nullptr} /* sentinel */
};