MCPcopy
hub / github.com/arduino/Arduino / getLibImage

Method getLibImage

app/src/processing/app/Theme.java:546–595  ·  view source on GitHub ↗

Return an Image object from inside the Processing lib folder.

(String filename, Component who, int width,
                                  int height)

Source from the content-addressed store, hash-verified

544 * Return an Image object from inside the Processing lib folder.
545 */
546 static public Image getLibImage(String filename, Component who, int width,
547 int height) {
548 Image image = null;
549
550 // Use vector image when available
551 Resource vectorFile = getThemeResource(filename + ".svg");
552 if (vectorFile.exists()) {
553 try {
554 image = imageFromSVG(vectorFile.getUrl(), width, height);
555 } catch (Exception e) {
556 System.err.println("Failed to load " + vectorFile + ": " + e.getMessage());
557 }
558 }
559
560 Resource bitmapFile = getThemeResource(filename + ".png");
561
562 // Otherwise fall-back to PNG bitmaps, allowing user-defined bitmaps to
563 // override built-in svgs
564 if (image == null || bitmapFile.getPriority() > vectorFile.getPriority()) {
565 Resource bitmap2xFile = getThemeResource(filename + "@2x.png");
566
567 Resource imageFile;
568 if (((getScale() > 125 && bitmap2xFile.exists()) || !bitmapFile.exists())
569 && (bitmapFile.isUserDefined() && bitmap2xFile.isUserDefined())) {
570 imageFile = bitmap2xFile;
571 } else {
572 imageFile = bitmapFile;
573 }
574 Toolkit tk = Toolkit.getDefaultToolkit();
575 image = tk.getImage(imageFile.getUrl());
576 }
577
578 MediaTracker tracker = new MediaTracker(who);
579 try {
580 tracker.addImage(image, 0);
581 tracker.waitForAll();
582 } catch (InterruptedException e) {
583 }
584
585 if (image.getWidth(null) != width || image.getHeight(null) != height) {
586 image = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
587 try {
588 tracker.addImage(image, 1);
589 tracker.waitForAll();
590 } catch (InterruptedException e) {
591 }
592 }
593
594 return image;
595 }
596
597 /**
598 * Get an image associated with the current color theme.

Callers 3

NotificationPopupMethod · 0.95
getThemeImageMethod · 0.95
handleAboutMethod · 0.95

Calls 8

getThemeResourceMethod · 0.95
existsMethod · 0.95
imageFromSVGMethod · 0.95
getUrlMethod · 0.95
getPriorityMethod · 0.95
getScaleMethod · 0.95
isUserDefinedMethod · 0.95
getMessageMethod · 0.45

Tested by

no test coverage detected