Skip to content

Commit 1d8c7d7

Browse files
authored
Merge pull request #16 from umjammer/1.0.14
1.0.14
2 parents 0595124 + 74a3cec commit 1d8c7d7

39 files changed

+756
-261
lines changed

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
# vavi-image
77

8+
<img alt="logo" src="src/test/resources/duke_paint2.png" width="200" />
9+
810
🎨 Imaging the world!
911

1012
### Formats
@@ -125,4 +127,8 @@
125127
* DaVinchi (wip, branch:davinch)
126128
* n88basic image format (wip, branch:n88basic)
127129
* yet another pic image format (wip, branch:pic)
128-
* ffmpeg op jna-ize
130+
* ffmpeg op jna-ize
131+
132+
---
133+
134+
<sub>image designed by @umjammer, drawn by nano banana</sub>

pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>vavi</groupId>
88
<artifactId>vavi-image</artifactId>
9-
<version>1.0.13</version>
9+
<version>1.0.14</version>
1010

1111
<name>Vavi Imaging API</name>
1212
<organization>
@@ -207,7 +207,7 @@
207207
<plugin>
208208
<groupId>org.apache.maven.plugins</groupId>
209209
<artifactId>maven-compiler-plugin</artifactId>
210-
<version>3.11.0</version>
210+
<version>3.12.1</version>
211211
<configuration>
212212
<release>17</release>
213213
</configuration>
@@ -239,7 +239,7 @@
239239
<dependency>
240240
<groupId>org.junit</groupId>
241241
<artifactId>junit-bom</artifactId>
242-
<version>5.10.3</version>
242+
<version>5.14.0</version>
243243
<type>pom</type>
244244
<scope>import</scope>
245245
</dependency>
@@ -250,7 +250,7 @@
250250
<dependency>
251251
<groupId>com.github.umjammer</groupId>
252252
<artifactId>vavi-commons</artifactId>
253-
<version>1.1.14</version>
253+
<version>1.1.16</version>
254254
</dependency>
255255
<dependency>
256256
<groupId>com.github.umjammer</groupId>
@@ -267,13 +267,13 @@
267267
<dependency>
268268
<groupId>com.github.umjammer</groupId> <!-- com.github.umjammer / vavi -->
269269
<artifactId>vavi-awt</artifactId>
270-
<version>1.0.8</version>
270+
<version>1.0.10</version>
271271
<scope>test</scope>
272272
</dependency>
273273
<dependency>
274274
<groupId>com.github.umjammer</groupId>
275275
<artifactId>javapng-spi</artifactId>
276-
<version>2.1.4</version>
276+
<version>2.1.5</version>
277277
<scope>test</scope>
278278
</dependency>
279279

src/main/java/vavi/awt/image/bmp/WindowsBitmap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
*
3636
* </code></pre>
3737
*
38-
* @see "Windows TM 3.1 グラフィックプログラミング ISBN4-8443-4628-8 p.187"
38+
* @see "Windows TM 3.1 Graphics Programming ISBN4-8443-4628-8 p.187"
3939
* @author <a href="mailto:umjammer@gmail.com">Naohide Sano</a> (nsano)
4040
* @version 0.00 970713 nsano initial version <br>
4141
* 1.00 010731 nsano move readFrom here <br>

src/main/java/vavi/awt/image/bmp/WindowsBitmapImageSource.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616

1717
/**
18-
* Windows ビットマップを作成します.
18+
* Creates a Windows bitmap.
1919
*
2020
* @author <a href="mailto:umjammer@gmail.com">Naohide Sano</a> (nsano)
2121
* @version 0.00 970713 nsano initial version <br>
@@ -61,12 +61,12 @@ public synchronized void removeConsumer(ImageConsumer ic) {
6161
public void requestTopDownLeftRightResend(ImageConsumer ic) {
6262
}
6363

64-
/** WindowsIconSource 用 */
64+
/** for WindowsIconSource */
6565
public WindowsBitmapImageSource(WindowsBitmap bitmap) {
6666
this.bitmap = bitmap;
6767
}
6868

69-
/** ビットマップを作成します. */
69+
/** Creates a bitmap. */
7070
public WindowsBitmapImageSource(InputStream in) throws IOException {
7171
bitmap = WindowsBitmap.readFrom(in);
7272
}
@@ -76,7 +76,7 @@ public WindowsBitmap getWindowsBitmap() {
7676
return bitmap;
7777
}
7878

79-
/** ビットマップを作成します. */
79+
/** Creates a bitmap. */
8080
private void loadPixel() {
8181

8282
ColorModel cm = bitmap.getColorModel();
@@ -92,9 +92,9 @@ private void loadPixel() {
9292

9393
ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES | ImageConsumer.SINGLEPASS | ImageConsumer.SINGLEFRAME);
9494

95-
// インデックスカラー用イメージバッファ
95+
// Indexed color image buffer
9696
byte[] vram = null;
97-
// フルカラー用イメージ用バッファ
97+
// Full color image buffer
9898
int[] ivram = null;
9999

100100
switch (bits) {

src/main/java/vavi/imageio/ImageConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717

1818
/**
19-
* Image を BufferedImage に変換するユーティリティです。
19+
* A utility to convert an Image to a BufferedImage.
2020
*
2121
* @author <a href="mailto:umjammer@gmail.com">Naohide Sano</a> (nsano)
2222
* @version 0.00 021124 nsano initial version <br>
@@ -39,12 +39,12 @@ public static ImageConverter getInstance() {
3939
/** */
4040
private int cmType = BufferedImage.TYPE_4BYTE_ABGR;
4141

42-
/** TODO 自動化 */
42+
/** TODO automation */
4343
public void setColorModelType(int cmType) {
4444
this.cmType = cmType;
4545
}
4646

47-
/** TODO BufferedImage のカラーモデルを自動設定する */
47+
/** TODO Automatically set the color model of a BufferedImage */
4848
public BufferedImage toBufferedImage(Image image) {
4949
int w = image.getWidth(imageObserver);
5050
int h = image.getHeight(imageObserver);

src/main/java/vavi/imageio/am88/ArtMasterImageReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public BufferedImage read(int imageIndex, ImageReadParam param)
8181
} else if (input instanceof InputStream) {
8282
is = (InputStream) input;
8383
} else {
84-
logger.log(Level.WARNING, "unsupported input: " + input);
84+
throw new IllegalArgumentException("unsupported input: " + input);
8585
}
8686

8787
try {

src/main/java/vavi/imageio/am88/ArtMasterImageReaderSpi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class ArtMasterImageReaderSpi extends ImageReaderSpi {
6060
"image/x-am88"
6161
};
6262
static final String[] WriterSpiNames = {
63-
/*"vavi.imageio.ico.ArtMasterWriterSpi"*/
63+
/*"vavi.imageio.am88.ArtMasterWriterSpi"*/
6464
};
6565
private static final boolean SupportsStandardStreamMetadataFormat = false;
6666
private static final String NativeStreamMetadataFormatName = null;

src/main/java/vavi/imageio/bmp/WindowsBitmapImageReader.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ public int getHeight(int imageIndex) throws IIOException {
7272
public static BufferedImage readImage(InputStream is) throws IOException {
7373
WindowsBitmap windowsBitmap = WindowsBitmap.readFrom(is);
7474

75-
// インデックスカラー用イメージバッファ
75+
// Indexed color image buffer
7676
byte[] vram = null;
77-
// フルカラー用イメージ用バッファ
77+
// Full color image buffer
7878
int[] ivram = null;
7979

8080
int bits = windowsBitmap.getBits();
@@ -141,7 +141,7 @@ public BufferedImage read(int imageIndex, ImageReadParam param)
141141
} else if (input instanceof InputStream) {
142142
is = (InputStream) input;
143143
} else {
144-
logger.log(Level.WARNING, "unsupported input: " + input);
144+
throw new IllegalArgumentException("unsupported input: " + input);
145145
}
146146

147147
try {
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
/*
2+
* Copyright (c) 2002 by Naohide Sano, All rights reserved.
3+
*
4+
* Programmed by Naohide Sano
5+
*/
6+
7+
package vavi.imageio.cgmate;
8+
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.lang.System.Logger;
12+
import java.lang.System.Logger.Level;
13+
import java.util.Locale;
14+
import java.util.Properties;
15+
import javax.imageio.ImageReader;
16+
import javax.imageio.spi.ImageReaderSpi;
17+
import javax.imageio.stream.ImageInputStream;
18+
19+
import vavi.imageio.am88.ArtMasterImageReader;
20+
21+
import static java.lang.System.getLogger;
22+
23+
24+
/**
25+
* CgMateImageReaderSpi.
26+
*
27+
* TODO we cannot make a good detector for cgmate images, so this has not registered as a spi yet.
28+
*
29+
* @author <a href="mailto:umjammer@gmail.com">Naohide Sano</a> (nsano)
30+
* @version 0.00 251127 nsano initial version <br>
31+
*/
32+
public class CgMateImageReaderSpi extends ImageReaderSpi {
33+
34+
private static final Logger logger = getLogger(CgMateImageReaderSpi.class.getName());
35+
36+
static {
37+
try {
38+
try (InputStream is = CgMateImageReaderSpi.class.getResourceAsStream("/META-INF/maven/vavi/vavi-image/pom.properties")) {
39+
if (is != null) {
40+
Properties props = new Properties();
41+
props.load(is);
42+
Version = props.getProperty("version", "undefined in pom.properties");
43+
} else {
44+
Version = System.getProperty("vavi.test.version", "undefined");
45+
}
46+
}
47+
} catch (Exception e) {
48+
throw new IllegalStateException(e);
49+
}
50+
}
51+
52+
private static final String VendorName = "http://www.vavi.com";
53+
private static final String Version;
54+
private static final String ReaderClassName =
55+
"vavi.imageio.cgmate.CgMateImageReader";
56+
private static final String[] Names = {
57+
"CGMATE"
58+
};
59+
private static final String[] Suffixes = {
60+
"pic", "PIC"
61+
};
62+
private static final String[] mimeTypes = {
63+
"image/x-cgmate"
64+
};
65+
static final String[] WriterSpiNames = {
66+
/*"vavi.imageio.cgmate.CgMateWriterSpi"*/
67+
};
68+
private static final boolean SupportsStandardStreamMetadataFormat = false;
69+
private static final String NativeStreamMetadataFormatName = null;
70+
private static final String NativeStreamMetadataFormatClassName = null;
71+
private static final String[] ExtraStreamMetadataFormatNames = null;
72+
private static final String[] ExtraStreamMetadataFormatClassNames = null;
73+
private static final boolean SupportsStandardImageMetadataFormat = false;
74+
private static final String NativeImageMetadataFormatName = "cgmate";
75+
private static final String NativeImageMetadataFormatClassName =
76+
/*"vavi.imageio.cgmate.CgMateMetaData"*/ null;
77+
private static final String[] ExtraImageMetadataFormatNames = null;
78+
private static final String[] ExtraImageMetadataFormatClassNames = null;
79+
80+
/** */
81+
public CgMateImageReaderSpi() {
82+
super(VendorName,
83+
Version,
84+
Names,
85+
Suffixes,
86+
mimeTypes,
87+
ReaderClassName,
88+
new Class[] { ImageInputStream.class, InputStream.class },
89+
WriterSpiNames,
90+
SupportsStandardStreamMetadataFormat,
91+
NativeStreamMetadataFormatName,
92+
NativeStreamMetadataFormatClassName,
93+
ExtraStreamMetadataFormatNames,
94+
ExtraStreamMetadataFormatClassNames,
95+
SupportsStandardImageMetadataFormat,
96+
NativeImageMetadataFormatName,
97+
NativeImageMetadataFormatClassName,
98+
ExtraImageMetadataFormatNames,
99+
ExtraImageMetadataFormatClassNames);
100+
}
101+
102+
@Override
103+
public String getDescription(Locale locale) {
104+
return "CGMATE Image";
105+
}
106+
107+
/* TODO InputStream */
108+
@Override
109+
public boolean canDecodeInput(Object obj) throws IOException {
110+
111+
if (obj instanceof ImageInputStream is) {
112+
// TODO is there some good detection?
113+
return true;
114+
} else {
115+
logger.log(Level.DEBUG, obj);
116+
return false;
117+
}
118+
}
119+
120+
@Override
121+
public ImageReader createReaderInstance(Object obj) {
122+
return new ArtMasterImageReader(this);
123+
}
124+
}

0 commit comments

Comments
 (0)