20 package net.sf.gridarta.model.face;
23 import java.io.FileNotFoundException;
24 import java.io.IOException;
25 import java.io.RandomAccessFile;
26 import java.util.HashMap;
28 import javax.swing.ImageIcon;
29 import org.jetbrains.annotations.NotNull;
30 import org.jetbrains.annotations.Nullable;
47 private final Map<String, Long>
positions =
new HashMap<>();
53 private final RandomAccessFile
file;
61 this.file =
new RandomAccessFile(
file,
"r");
71 file =
new RandomAccessFile(fileName,
"r");
80 public void addInfo(@NotNull
final String faceName,
final int pos,
final int size) {
81 positions.put(faceName, (
long) pos << 32 | size);
86 protected ImageIcon
createImage(@NotNull
final String faceName,
final long stretch) {
87 final Long position =
positions.get(faceName);
88 if (position ==
null) {
93 final long posI = position;
94 file.seek(posI >> 32);
95 buf =
new byte[(int) posI];
97 }
catch (
final IOException e) {
100 return new ImageIcon(buf);