@@ -99,6 +99,22 @@ public ImageData getImageData(int zoom) {
9999 return URLImageDescriptor .getImageData (url , zoom );
100100 }
101101
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+ }
102118 }
103119
104120 private static long cumulativeTime ;
@@ -166,15 +182,31 @@ private static ImageData getImageData(String url, int zoom) {
166182 return null ;
167183 }
168184
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+
169197 private static ImageData getImageData (URL url ) {
170- return getImageData (url , 0 );
198+ return getImageData (url , 0 , SWT . IMAGE_COPY );
171199 }
172200
173201 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 ) {
174206 ImageData result = null ;
175207 try (InputStream in = getStream (url )) {
176208 if (in != null ) {
177- result = new ImageData (in , zoom );
209+ result = new ImageData (in , zoom , flag );
178210 }
179211 } catch (SWTException e ) {
180212 if (e .code != SWT .ERROR_INVALID_IMAGE ) {
0 commit comments