22#include <com/sun/star/beans/PropertyValue.hpp>
23#include <com/sun/star/beans/XPropertySet.hpp>
24#include <com/sun/star/graphic/GraphicProvider.hpp>
25#include <com/sun/star/graphic/XGraphicProvider.hpp>
26#include <com/sun/star/io/XInputStream.hpp>
27#include <com/sun/star/uno/Reference.hxx>
33using namespace css::beans;
34using namespace css::graphic;
35using namespace css::io;
36using namespace css::uno;
42 struct XMLGraphicMimeTypeMapper
45 const char* pMimeType;
48 static const XMLGraphicMimeTypeMapper aMapper[]
49 = { {
"gif",
"image/gif" }, {
"png",
"image/png" }, {
"jpg",
"image/jpeg" },
50 {
"tif",
"image/tiff" }, {
"svg",
"image/svg+xml" }, {
"pdf",
"application/pdf" },
51 {
"wmf",
"image/x-wmf" }, {
"emf",
"image/x-emf" }, {
"eps",
"image/x-eps" },
52 {
"bmp",
"image/bmp" }, {
"pct",
"image/x-pict" }, {
"svm",
"image/x-svm" } };
56 size_t const nCount = std::size(aMapper);
59 if (rExt == aMapper[
i].
pExt)
60 aMimeType = OUString(aMapper[
i].pMimeType, strlen(aMapper[
i].pMimeType),
61 RTL_TEXTENCODING_ASCII_US);
69 OUString aSourceMimeType;
70 Reference<XPropertySet>
const xGraphicPropertySet(xGraphic, UNO_QUERY);
71 if (xGraphicPropertySet.is() &&
72 (xGraphicPropertySet->getPropertyValue(
"MimeType") >>= aSourceMimeType))
74 return aSourceMimeType;
83 Reference<XGraphicProvider> xProvider
87 Reference<XGraphic> xGraphic(xProvider->queryGraphic(aMediaProperties));
94 switch (convertDataFormat)
96 case ConvertDataFormat::BMP:
98 case ConvertDataFormat::GIF:
100 case ConvertDataFormat::JPG:
102 case ConvertDataFormat::PCT:
103 return "image/x-pict";
104 case ConvertDataFormat::PNG:
106 case ConvertDataFormat::SVM:
107 return "image/x-svm";
108 case ConvertDataFormat::TIF:
110 case ConvertDataFormat::WMF:
111 return "image/x-wmf";
112 case ConvertDataFormat::EMF:
113 return "image/x-emf";
114 case ConvertDataFormat::SVG:
115 return "image/svg+xml";
116 case ConvertDataFormat::MET:
117 case ConvertDataFormat::Unknown:
125 char const*
pExt =
nullptr;
127 if (nFormat != ConvertDataFormat::Unknown)
131 case ConvertDataFormat::BMP:
134 case ConvertDataFormat::GIF:
137 case ConvertDataFormat::JPG:
140 case ConvertDataFormat::MET:
143 case ConvertDataFormat::PCT:
146 case ConvertDataFormat::PNG:
149 case ConvertDataFormat::SVM:
152 case ConvertDataFormat::TIF:
155 case ConvertDataFormat::WMF:
158 case ConvertDataFormat::EMF:
static OUString GetMimeTypeForXGraphic(const css::uno::Reference< css::graphic::XGraphic > &xGraphic)
static OUString GetMimeTypeForImageStream(const css::uno::Reference< css::io::XInputStream > &xInputStream)
static char const * GetExtensionForConvertDataFormat(ConvertDataFormat nFormat)
static OUString GetMimeTypeForConvertDataFormat(ConvertDataFormat convertDataFormat)
static OUString GetMimeTypeForExtension(std::string_view rExt)
Reference< XComponentContext > getProcessComponentContext()
This function gets the process service factory's default component context.
css::beans::PropertyValue makePropertyValue(const OUString &rName, T &&rValue)
Creates a beans::PropertyValue easily, i.e.
const sal_Unicode *const aMimeType[]