Mercurial > hg > orthanc-java
annotate JavaSDK/be/uclouvain/orthanc/Image.java @ 43:678bbed285a1 default tip
improved import of JNI in cmake
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 06 Sep 2024 13:53:54 +0200 |
parents | 15dc698243ac |
children |
rev | line source |
---|---|
0 | 1 package be.uclouvain.orthanc; |
2 | |
3 /** | |
18 | 4 * SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0 | 5 * SPDX-License-Identifier: GPL-3.0-or-later |
6 */ | |
7 | |
8 /** | |
9 * Java plugin for Orthanc | |
18 | 10 * Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium |
0 | 11 * |
12 * This program is free software: you can redistribute it and/or | |
13 * modify it under the terms of the GNU General Public License as | |
14 * published by the Free Software Foundation, either version 3 of the | |
15 * License, or (at your option) any later version. | |
16 * | |
17 * This program is distributed in the hope that it will be useful, but | |
18 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
20 * General Public License for more details. | |
21 * | |
22 * You should have received a copy of the GNU General Public License | |
23 * along with this program. If not, see http://www.gnu.org/licenses/. | |
24 **/ | |
25 | |
26 | |
8
26c08ff926a3
added warning about auto-generated files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
27 // WARNING: Auto-generated file. Do not modify it by hand. |
26c08ff926a3
added warning about auto-generated files
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
0
diff
changeset
|
28 |
0 | 29 /** |
30 * 2D image managed by the Orthanc core | |
31 **/ | |
32 public class Image { | |
33 private long self; | |
34 | |
35 /** | |
36 * Construct a Java object wrapping a C object that is managed by Orthanc. | |
37 * @param self Pointer to the C object. | |
38 **/ | |
39 protected Image(long self) { | |
40 if (self == 0) { | |
41 throw new IllegalArgumentException("Null pointer"); | |
42 } else { | |
43 this.self = self; | |
44 } | |
45 } | |
46 | |
47 /** | |
48 * Return the C object that is associated with this Java wrapper. | |
49 * @return Pointer to the C object. | |
50 **/ | |
51 protected long getSelf() { | |
52 return self; | |
53 } | |
54 | |
55 @Override | |
56 protected void finalize() throws Throwable { | |
57 dispose(); | |
58 super.finalize(); | |
59 } | |
60 | |
61 /** | |
62 * Manually deallocate the C object that is associated with this Java wrapper. | |
63 * | |
64 * This method can be used to immediately deallocate the C object, | |
65 * instead of waiting for the garbage collector to dispose the Java wrapper. | |
66 **/ | |
67 public void dispose() { | |
68 if (self != 0) { | |
69 NativeSDK.OrthancPluginFreeImage(self); | |
70 self = 0; | |
71 } | |
72 } | |
73 | |
74 /** | |
75 * Decode a compressed image. | |
76 * | |
77 * This function decodes a compressed image from a memory buffer. | |
78 * | |
79 * @param data Pointer to a memory buffer containing the compressed image. | |
80 * @param format The file format of the compressed image. | |
81 * @return The newly constructed object. | |
82 **/ | |
83 public static Image uncompressImage( | |
84 byte[] data, | |
85 ImageFormat format) { | |
86 return new Image(NativeSDK.OrthancPluginUncompressImage(data, format.getValue())); | |
87 } | |
88 | |
89 /** | |
90 * Create an image. | |
91 * | |
92 * This function creates an image of given size and format. | |
93 * | |
94 * @param format The format of the pixels. | |
95 * @param width The width of the image. | |
96 * @param height The height of the image. | |
97 * @return The newly constructed object. | |
98 **/ | |
99 public static Image createImage( | |
100 PixelFormat format, | |
101 int width, | |
102 int height) { | |
103 return new Image(NativeSDK.OrthancPluginCreateImage(format.getValue(), width, height)); | |
104 } | |
105 | |
106 /** | |
107 * Decode one frame from a DICOM instance. | |
108 * | |
109 * This function decodes one frame of a DICOM image that is stored in a memory | |
110 * buffer. This function will give the same result as | |
111 * OrthancPluginUncompressImage() for single-frame DICOM images. | |
112 * | |
113 * @param buffer Pointer to a memory buffer containing the DICOM image. | |
114 * @param frameIndex The index of the frame of interest in a multi-frame image. | |
115 * @return The newly constructed object. | |
116 **/ | |
117 public static Image decodeDicomImage( | |
118 byte[] buffer, | |
119 int frameIndex) { | |
120 return new Image(NativeSDK.OrthancPluginDecodeDicomImage(buffer, frameIndex)); | |
121 } | |
122 | |
123 | |
124 /** | |
125 * Return the pixel format of an image. | |
126 * | |
127 * This function returns the type of memory layout for the pixels of the given | |
128 * image. | |
129 * | |
130 * @return The pixel format. | |
131 **/ | |
132 public PixelFormat getImagePixelFormat() { | |
133 return PixelFormat.getInstance(NativeSDK.OrthancPluginGetImagePixelFormat(self)); | |
134 } | |
135 | |
136 /** | |
137 * Return the width of an image. | |
138 * | |
139 * This function returns the width of the given image. | |
140 * | |
141 * @return The width. | |
142 **/ | |
143 public int getImageWidth() { | |
144 return NativeSDK.OrthancPluginGetImageWidth(self); | |
145 } | |
146 | |
147 /** | |
148 * Return the height of an image. | |
149 * | |
150 * This function returns the height of the given image. | |
151 * | |
152 * @return The height. | |
153 **/ | |
154 public int getImageHeight() { | |
155 return NativeSDK.OrthancPluginGetImageHeight(self); | |
156 } | |
157 | |
158 /** | |
159 * Return the pitch of an image. | |
160 * | |
161 * This function returns the pitch of the given image. The pitch is defined as the | |
162 * number of bytes between 2 successive lines of the image in the memory buffer. | |
163 * | |
164 * @return The pitch. | |
165 **/ | |
166 public int getImagePitch() { | |
167 return NativeSDK.OrthancPluginGetImagePitch(self); | |
168 } | |
169 | |
170 /** | |
171 * Change the pixel format of an image. | |
172 * | |
173 * This function creates a new image, changing the memory layout of the pixels. | |
174 * | |
175 * @param targetFormat The target pixel format. | |
176 * @return The newly constructed object. | |
177 **/ | |
178 public Image convertPixelFormat( | |
179 PixelFormat targetFormat) { | |
180 return new Image(NativeSDK.OrthancPluginConvertPixelFormat(self, targetFormat.getValue())); | |
181 } | |
182 | |
183 /** | |
184 * Draw text on an image. | |
185 * | |
186 * This function draws some text on some image. | |
187 * | |
188 * @param fontIndex The index of the font. This value must be less than | |
189 * OrthancPluginGetFontsCount(). | |
190 * @param utf8Text The text to be drawn, encoded as an UTF-8 zero-terminated | |
191 * string. | |
192 * @param x The X position of the text over the image. | |
193 * @param y The Y position of the text over the image. | |
194 * @param r The value of the red color channel of the text. | |
195 * @param g The value of the green color channel of the text. | |
196 * @param b The value of the blue color channel of the text. | |
197 **/ | |
198 public void drawText( | |
199 int fontIndex, | |
200 String utf8Text, | |
201 int x, | |
202 int y, | |
203 byte r, | |
204 byte g, | |
205 byte b) { | |
206 NativeSDK.OrthancPluginDrawText(self, fontIndex, utf8Text, x, y, r, g, b); | |
207 } | |
208 | |
209 } |