/** * Copyright (c) 2014 Matthias Jaenicke <matthias.jaenicke@student.kit.edu>, * Matthias Plappert <undkc@student.kit.edu>, * Julien Duman <uncyc@student.kit.edu>, * Christian Dreher <uaeef@student.kit.edu>, * Wasilij Beskorovajnov <uajkm@student.kit.edu> and * Aydin Tekin <aydin.tekin@student.kit.edu> * * Released under the MIT license (refer to LICENSE.md) * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package edu.kit.iks.CryptographicsLib; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import javax.imageio.ImageIO; import javax.swing.JPanel; /** * Class to display an image in the view * * @author Christian Dreher */ public class ImageView extends JPanel{ /** * Serial Version UID */ private static final long serialVersionUID = 6272421643783212805L; /** * Image to be displayed */ private BufferedImage image; /** * Constructor initializing a new instance of {ImageView} * with given {img} * * @param img Image to be displayed */ public ImageView(Image img) { if (img instanceof BufferedImage) { this.image = (BufferedImage) img; } // Create a buffered image with transparency BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); // Draw the image on to the buffered image Graphics2D bGr = bimage.createGraphics(); bGr.drawImage(img, 0, 0, null); bGr.dispose(); this.image = bimage; this.setPreferredSize(new Dimension(this.image.getWidth(), this.image.getHeight())); } /** * Constructor initializing a new instance of {ImageView} * with given {filePath} * * @param filePath File path to the image to be displayed */ public ImageView(String filePath) { try { InputStream is = this.getClass().getResourceAsStream(filePath); image = ImageIO.read(is); } catch (IOException e) { Logger.error(e); } this.setPreferredSize(new Dimension(this.image.getWidth(), this.image.getHeight())); } /* * (non-Javadoc) * @see javax.swing.JComponent#paintComponent(java.awt.Graphics) */ @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(image, 0, 0, null); // see javadoc for more info on the parameters } /** * @return the image */ public BufferedImage getImage() { return image; } }