comparison Plugins/Engine/OrthancPlugins.cpp @ 1608:adc6a5704cdb

OrthancPluginConvertPixelFormat
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 02 Sep 2015 13:58:08 +0200
parents 31f4adefb88f
children c74495267acf
comparison
equal deleted inserted replaced
1607:a1c92fd4d26d 1608:adc6a5704cdb
40 #include "../../OrthancServer/OrthancInitialization.h" 40 #include "../../OrthancServer/OrthancInitialization.h"
41 #include "../../OrthancServer/ServerContext.h" 41 #include "../../OrthancServer/ServerContext.h"
42 #include "../../OrthancServer/ServerToolbox.h" 42 #include "../../OrthancServer/ServerToolbox.h"
43 #include "../../Core/Compression/ZlibCompressor.h" 43 #include "../../Core/Compression/ZlibCompressor.h"
44 #include "../../Core/Compression/GzipCompressor.h" 44 #include "../../Core/Compression/GzipCompressor.h"
45 #include "../../Core/ImageFormats/Image.h"
45 #include "../../Core/ImageFormats/PngReader.h" 46 #include "../../Core/ImageFormats/PngReader.h"
46 #include "../../Core/ImageFormats/PngWriter.h" 47 #include "../../Core/ImageFormats/PngWriter.h"
47 #include "../../Core/ImageFormats/JpegReader.h" 48 #include "../../Core/ImageFormats/JpegReader.h"
48 #include "../../Core/ImageFormats/JpegWriter.h" 49 #include "../../Core/ImageFormats/JpegWriter.h"
50 #include "../../Core/ImageFormats/ImageProcessing.h"
49 51
50 #include <boost/regex.hpp> 52 #include <boost/regex.hpp>
51 53
52 namespace Orthanc 54 namespace Orthanc
53 { 55 {
1166 CopyToMemoryBuffer(*p.target, s); 1168 CopyToMemoryBuffer(*p.target, s);
1167 } 1169 }
1168 } 1170 }
1169 1171
1170 1172
1173 void OrthancPlugins::ConvertPixelFormat(const void* parameters)
1174 {
1175 const _OrthancPluginConvertPixelFormat& p = *reinterpret_cast<const _OrthancPluginConvertPixelFormat*>(parameters);
1176 const ImageAccessor& source = *reinterpret_cast<const ImageAccessor*>(p.source);
1177
1178 std::auto_ptr<ImageAccessor> target(new Image(Convert(p.targetFormat), source.GetWidth(), source.GetHeight()));
1179 ImageProcessing::Convert(*target, source);
1180
1181 *(p.target) = reinterpret_cast<OrthancPluginImage*>(target.release());
1182 }
1183
1184
1171 bool OrthancPlugins::InvokeService(_OrthancPluginService service, 1185 bool OrthancPlugins::InvokeService(_OrthancPluginService service,
1172 const void* parameters) 1186 const void* parameters)
1173 { 1187 {
1174 VLOG(1) << "Calling plugin service: " << service; 1188 VLOG(1) << "Calling plugin service: " << service;
1175 1189
1528 1542
1529 case _OrthancPluginService_CallHttpClient: 1543 case _OrthancPluginService_CallHttpClient:
1530 CallHttpClient(parameters); 1544 CallHttpClient(parameters);
1531 return true; 1545 return true;
1532 1546
1547 case _OrthancPluginService_ConvertPixelFormat:
1548 ConvertPixelFormat(parameters);
1549 return true;
1550
1533 default: 1551 default:
1534 { 1552 {
1535 // This service is unknown to the Orthanc plugin engine 1553 // This service is unknown to the Orthanc plugin engine
1536 return false; 1554 return false;
1537 } 1555 }