@@ -99,6 +99,22 @@ public ImageData getImageData(int zoom) {
99
99
return URLImageDescriptor .getImageData (url , zoom );
100
100
}
101
101
102
+ @ Override
103
+ public ImageData getCustomizedImageData (int zoom , int flag ) {
104
+ return URLImageDescriptor .getCustomizedImageData (url , zoom , flag );
105
+ }
106
+
107
+ @ Override
108
+ public boolean supportsRasterizationFlag (int flag ) {
109
+ boolean supportsFlag = flag == SWT .IMAGE_DISABLE || flag == SWT .IMAGE_GRAY || flag == SWT .IMAGE_COPY ;
110
+ URL tempURL = getURL (url );
111
+ if (tempURL != null ) {
112
+ if (tempURL .toString ().endsWith (".svg" ) && supportsFlag ) { //$NON-NLS-1$
113
+ return true ;
114
+ }
115
+ }
116
+ return false ;
117
+ }
102
118
}
103
119
104
120
private static long cumulativeTime ;
@@ -166,15 +182,31 @@ private static ImageData getImageData(String url, int zoom) {
166
182
return null ;
167
183
}
168
184
185
+ private static ImageData getCustomizedImageData (String url , int zoom , int flag ) {
186
+ URL tempURL = getURL (url );
187
+ if (tempURL != null ) {
188
+ try (InputStream in = getStream (tempURL )) {
189
+ return getImageData (tempURL , zoom , flag );
190
+ } catch (IOException e ) {
191
+ // ignore.
192
+ }
193
+ }
194
+ return null ;
195
+ }
196
+
169
197
private static ImageData getImageData (URL url ) {
170
- return getImageData (url , 0 );
198
+ return getImageData (url , 0 , SWT . IMAGE_COPY );
171
199
}
172
200
173
201
private static ImageData getImageData (URL url , int zoom ) {
202
+ return getImageData (url , zoom , SWT .IMAGE_COPY );
203
+ }
204
+
205
+ private static ImageData getImageData (URL url , int zoom , int flag ) {
174
206
ImageData result = null ;
175
207
try (InputStream in = getStream (url )) {
176
208
if (in != null ) {
177
- result = new ImageData (in , zoom );
209
+ result = new ImageData (in , zoom , flag );
178
210
}
179
211
} catch (SWTException e ) {
180
212
if (e .code != SWT .ERROR_INVALID_IMAGE ) {
0 commit comments