Mercurial > hg > orthanc-wsi
comparison Framework/Inputs/OpenSlideLibrary.h @ 278:169f168ba07a
retrieval of properties from openslide
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 12 Jul 2023 17:12:10 +0200 |
parents | 20a730889ae2 |
children | 7020852a8fa9 |
comparison
equal
deleted
inserted
replaced
268:a6e4834ac141 | 278:169f168ba07a |
---|---|
23 #pragma once | 23 #pragma once |
24 | 24 |
25 #include <Images/ImageAccessor.h> | 25 #include <Images/ImageAccessor.h> |
26 #include <SharedLibrary.h> | 26 #include <SharedLibrary.h> |
27 | 27 |
28 #include <map> | |
28 #include <vector> | 29 #include <vector> |
29 | 30 |
30 namespace OrthancWSI | 31 namespace OrthancWSI |
31 { | 32 { |
32 class OpenSlideLibrary : public boost::noncopyable | 33 class OpenSlideLibrary : public boost::noncopyable |
37 typedef void (*FunctionGetLevelDimensions) (void*, int32_t, int64_t*, int64_t*); | 38 typedef void (*FunctionGetLevelDimensions) (void*, int32_t, int64_t*, int64_t*); |
38 typedef double (*FunctionGetLevelDownsample) (void*, int32_t); | 39 typedef double (*FunctionGetLevelDownsample) (void*, int32_t); |
39 typedef void* (*FunctionOpen) (const char*); | 40 typedef void* (*FunctionOpen) (const char*); |
40 typedef void (*FunctionReadRegion) (void*, uint32_t*, int64_t, int64_t, int32_t, int64_t, int64_t); | 41 typedef void (*FunctionReadRegion) (void*, uint32_t*, int64_t, int64_t, int32_t, int64_t, int64_t); |
41 | 42 |
43 // New in WSI 2.0 | |
44 typedef const char* const* (*FunctionGetPropertyNames) (void*); | |
45 typedef const char* (*FunctionGetPropertyValue) (void*, const char*); | |
46 | |
42 Orthanc::SharedLibrary library_; | 47 Orthanc::SharedLibrary library_; |
43 FunctionClose close_; | 48 FunctionClose close_; |
44 FunctionGetLevelCount getLevelCount_; | 49 FunctionGetLevelCount getLevelCount_; |
45 FunctionGetLevelDimensions getLevelDimensions_; | 50 FunctionGetLevelDimensions getLevelDimensions_; |
46 FunctionGetLevelDownsample getLevelDownsample_; | 51 FunctionGetLevelDownsample getLevelDownsample_; |
47 FunctionOpen open_; | 52 FunctionOpen open_; |
48 FunctionReadRegion readRegion_; | 53 FunctionReadRegion readRegion_; |
54 FunctionGetPropertyNames getPropertyNames_; | |
55 FunctionGetPropertyValue getPropertyValue_; | |
49 | 56 |
50 public: | 57 public: |
51 explicit OpenSlideLibrary(const std::string& path); | 58 explicit OpenSlideLibrary(const std::string& path); |
52 | 59 |
53 static OpenSlideLibrary& GetInstance(); | 60 static OpenSlideLibrary& GetInstance(); |
70 Level(int64_t width, | 77 Level(int64_t width, |
71 int64_t height, | 78 int64_t height, |
72 double downsample); | 79 double downsample); |
73 }; | 80 }; |
74 | 81 |
75 OpenSlideLibrary& that_; | 82 OpenSlideLibrary& that_; |
76 void* handle_; | 83 void* handle_; |
77 std::vector<Level> levels_; | 84 std::vector<Level> levels_; |
85 std::map<std::string, std::string> properties_; | |
78 | 86 |
79 void Initialize(const std::string& path); | 87 void Initialize(const std::string& path); |
80 | 88 |
81 void Close(); | 89 void Close(); |
82 | 90 |
107 Orthanc::ImageAccessor* ReadRegion(unsigned int level, | 115 Orthanc::ImageAccessor* ReadRegion(unsigned int level, |
108 uint64_t x, | 116 uint64_t x, |
109 uint64_t y, | 117 uint64_t y, |
110 unsigned int width, | 118 unsigned int width, |
111 unsigned int height); | 119 unsigned int height); |
120 | |
121 bool LookupProperty(std::string& value, | |
122 const std::string& property) const; | |
112 }; | 123 }; |
113 }; | 124 }; |
114 } | 125 } |