static ERL_NIF_TERM exmagick_set_attr (ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { ErlNifBinary utf8; char atom[EXM_MAX_ATOM_SIZE]; exm_resource_t *resource; EXM_INIT; ErlNifResourceType *type = (ErlNifResourceType *) enif_priv_data(env); if (0 == enif_get_resource(env, argv[0], type, (void **) &resource)) { EXM_FAIL(ehandler, "invalid handle"); } if (0 == enif_get_atom(env, argv[1], atom, EXM_MAX_ATOM_SIZE, ERL_NIF_LATIN1)) { EXM_FAIL(ehandler, "argv[1]: bad argument"); } if (strcmp("adjoin", atom) == 0) { if (0 == exmagick_get_boolean_u(env, argv[2], &resource->i_info->adjoin)) { EXM_FAIL(ehandler, "argv[2]: bad argument"); } } if (strcmp("magick", atom) == 0) { if (0 == exmagick_get_utf8str(env, argv[2], &utf8)) { EXM_FAIL(ehandler, "argv[2]: bad argument"); } exmagick_utf8strcpy(resource->image->magick, &utf8, MaxTextExtent); } if (strcmp("density", atom) == 0) { if (0 == exmagick_get_utf8str(env, argv[2], &utf8)) { EXM_FAIL(ehandler, "argv[2]: bad argument"); } MagickFree(resource->i_info->density); resource->i_info->density=exmagick_utf8strdup(&utf8); if (resource->i_info->density == NULL) { EXM_FAIL(ehandler, "could not set density"); } } return(enif_make_tuple2(env, enif_make_atom(env, "ok"), argv[0])); ehandler: return(enif_make_tuple2(env, enif_make_atom(env, "error"), exmagick_make_utf8str(env, errmsg))); }
FormatsManager::FormatsManager() { m_fmts.insert(FormatsManager::AI, QStringList() << "ai"); m_fmts.insert(FormatsManager::BMP, QStringList() << "bmp"); m_fmts.insert(FormatsManager::CVG, QStringList() << "cvg"); m_fmts.insert(FormatsManager::EPS, QStringList() << "eps" << "epsf" << "epsi" << "eps2" << "eps3" << "epi" << "ept"); m_fmts.insert(FormatsManager::GIF, QStringList() << "gif"); m_fmts.insert(FormatsManager::JPEG, QStringList() << "jpg" << "jpeg"); m_fmts.insert(FormatsManager::ORA, QStringList() << "ora"); m_fmts.insert(FormatsManager::PAT, QStringList() << "pat"); m_fmts.insert(FormatsManager::PCT, QStringList() << "pct" << "pic" << "pict"); m_fmts.insert(FormatsManager::PDF, QStringList() << "pdf"); m_fmts.insert(FormatsManager::PGF, QStringList() << "pgf"); m_fmts.insert(FormatsManager::PNG, QStringList() << "png"); m_fmts.insert(FormatsManager::PS, QStringList() << "ps"); m_fmts.insert(FormatsManager::PSD, QStringList() << "psd"); m_fmts.insert(FormatsManager::SVG, QStringList() << "svg" << "svgz"); m_fmts.insert(FormatsManager::TIFF, QStringList() << "tif" << "tiff"); m_fmts.insert(FormatsManager::UNICONV, QStringList() << "cdt" << "ccx" << "cmx" << "aff" << "sk" << "sk1" << "plt" << "dxf" << "dst" << "pes" << "exp" << "pcs"); m_fmts.insert(FormatsManager::WMF, QStringList() << "wmf"); m_fmts.insert(FormatsManager::WPG, QStringList() << "wpg"); m_fmts.insert(FormatsManager::XFIG, QStringList() << "fig"); m_fmts.insert(FormatsManager::XPM, QStringList() << "xpm"); #ifdef GMAGICK_FOUND QStringList gmagickformats; InitializeMagick(0); ExceptionInfo exception; MagickInfo **magick_array; magick_array=GetMagickInfoArray(&exception); if (!magick_array) return; for (int i=0; magick_array[i] != 0; i++) { if (magick_array[i]->stealth) continue; gmagickformats<<QString(magick_array[i]->name).toLower(); } MagickFree(magick_array); //qDebug()<<gmagickformats; gmagickformats.removeAll("eps"); gmagickformats.removeAll("pdf"); gmagickformats.removeAll("pict"); gmagickformats.removeAll("ps"); gmagickformats.removeAll("psd"); gmagickformats.removeAll("svg"); gmagickformats.removeAll("svgz"); gmagickformats.removeAll("tiff"); gmagickformats.removeAll("wmf"); gmagickformats.removeAll("wpg"); m_fmts.insert(FormatsManager::GMAGICK, gmagickformats); #endif m_fmtNames[FormatsManager::AI] = QObject::tr("Adobe Illustrator"); m_fmtNames[FormatsManager::BMP] = QObject::tr("BMP"); m_fmtNames[FormatsManager::CVG] = QObject::tr("Calamus Vector Graphics"); m_fmtNames[FormatsManager::EPS] = QObject::tr("Encapsulated PostScript"); m_fmtNames[FormatsManager::GIF] = QObject::tr("GIF"); m_fmtNames[FormatsManager::JPEG] = QObject::tr("JPEG"); m_fmtNames[FormatsManager::ORA] = QObject::tr("Open Raster"); m_fmtNames[FormatsManager::PAT] = QObject::tr("Pattern Files"); m_fmtNames[FormatsManager::PDF] = QObject::tr("PDF Document"); m_fmtNames[FormatsManager::PGF] = QObject::tr("PGF"); m_fmtNames[FormatsManager::PNG] = QObject::tr("PNG"); m_fmtNames[FormatsManager::PSD] = QObject::tr("Adobe Photoshop"); m_fmtNames[FormatsManager::PS] = QObject::tr("PostScript"); m_fmtNames[FormatsManager::SVG] = QObject::tr("Scalable Vector Graphics"); m_fmtNames[FormatsManager::TIFF] = QObject::tr("TIFF"); m_fmtNames[FormatsManager::WMF] = QObject::tr("Windows Meta File"); m_fmtNames[FormatsManager::WPG] = QObject::tr("WordPerfect Graphics"); m_fmtNames[FormatsManager::XFIG] = QObject::tr("Xfig File"); m_fmtNames[FormatsManager::XPM] = QObject::tr("XPM"); #ifdef GMAGICK_FOUND m_fmtNames[FormatsManager::GMAGICK] = QObject::tr("GraphicsMagick"); #endif m_fmtNames[FormatsManager::PCT] = QObject::tr("Macintosh Pict"); m_fmtNames[FormatsManager::QT] = QObject::tr("Qt Supported File"); m_fmtNames[FormatsManager::UNICONV] = QObject::tr("UniConvertor"); m_fmtMimeTypes.insert(FormatsManager::AI, QStringList() << "application/illustrator"); m_fmtMimeTypes.insert(FormatsManager::CVG, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::EPS, QStringList() << "application/postscript"); m_fmtMimeTypes.insert(FormatsManager::GIF, QStringList() << "image/gif"); m_fmtMimeTypes.insert(FormatsManager::JPEG, QStringList() << "image/jpeg"); m_fmtMimeTypes.insert(FormatsManager::ORA, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::PAT, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::PCT, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::PDF, QStringList() << "application/pdf"); m_fmtMimeTypes.insert(FormatsManager::PGF, QStringList() << "image/pgf"); m_fmtMimeTypes.insert(FormatsManager::PNG, QStringList() << "image/png"); m_fmtMimeTypes.insert(FormatsManager::PS, QStringList() << "application/postscript"); m_fmtMimeTypes.insert(FormatsManager::PSD, QStringList() << "application/photoshop"); m_fmtMimeTypes.insert(FormatsManager::QT, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::SVG, QStringList() << "image/svg+xml"); m_fmtMimeTypes.insert(FormatsManager::TIFF, QStringList() << "image/tiff"); m_fmtMimeTypes.insert(FormatsManager::WMF, QStringList() << "image/wmf"); m_fmtMimeTypes.insert(FormatsManager::WPG, QStringList() << ""); m_fmtMimeTypes.insert(FormatsManager::XFIG, QStringList() << "image/x-xfig"); m_fmtMimeTypes.insert(FormatsManager::XPM, QStringList() << "image/xpm "); QMapIterator<int, QStringList> i(m_fmts); while (i.hasNext()) { i.next(); m_fmtList << i.value().first().toUpper(); } m_qtSupportedImageFormats = QImageReader::supportedImageFormats(); QStringList qtFmts; for (int qf = 0; qf < m_qtSupportedImageFormats.count(); qf++) { QString fmt = m_qtSupportedImageFormats[qf]; bool found = false; QMapIterator<int, QStringList> i(m_fmts); while (i.hasNext()) { i.next(); if (i.value().contains(fmt)) found = true; } if (!found) qtFmts.append(fmt); } m_fmts.insert(FormatsManager::QT, qtFmts); m_supportedImageFormats = m_qtSupportedImageFormats; updateSupportedImageFormats(m_supportedImageFormats); }