20 package net.sf.gridarta.model.face;
23 import java.io.FileInputStream;
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.util.HashMap;
28 import javax.swing.ImageIcon;
29 import org.jetbrains.annotations.NotNull;
30 import org.jetbrains.annotations.Nullable;
44 private final Map<String, String>
files =
new HashMap<>();
60 public void addInfo(@NotNull
final String faceName, @NotNull
final String fileName) {
61 files.put(faceName, fileName);
71 return files.get(faceName);
76 protected ImageIcon
createImage(@NotNull
final String faceName,
final long stretch) {
77 final String filename =
files.get(faceName);
78 if (filename ==
null) {
82 final File file =
new File(filename);
83 final long length = file.length();
84 if (length <= 0L || length >= Integer.MAX_VALUE) {
89 final int intLength = (int) length;
90 final byte[] buf =
new byte[intLength];
92 try (InputStream fis =
new FileInputStream(file)) {
93 if (fis.read(buf) != intLength) {
97 }
catch (
final IOException ex) {
101 return new ImageIcon(buf);