X-Git-Url: http://git.nikiroo.be/?p=fanfix.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FImage.java;fp=src%2Fbe%2Fnikiroo%2Futils%2FImage.java;h=64f7b5a18f583ca2df5ebb055f3ac081f36ea9eb;hp=2e9c9f83a39bfd4fcdeef8d351071d8284e9af61;hb=5221cf7f72655a6e27af81167a4a3f237750c7ca;hpb=c60b070de7344284b8467ebe3653447b58df5a6c diff --git a/src/be/nikiroo/utils/Image.java b/src/be/nikiroo/utils/Image.java index 2e9c9f8..64f7b5a 100644 --- a/src/be/nikiroo/utils/Image.java +++ b/src/be/nikiroo/utils/Image.java @@ -5,9 +5,12 @@ import java.io.Closeable; import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.io.OutputStream; import java.io.Serializable; +import be.nikiroo.utils.streams.Base64InputStream; import be.nikiroo.utils.streams.MarkableFileInputStream; /** @@ -54,6 +57,24 @@ public class Image implements Closeable, Serializable { } } + /** + * Create an image from Base64 encoded data. + * + * @deprecated Please use {@link Image#Image(InputStream)} instead, with a + * {@link Base64InputStream} + * + * @param base64EncodedData + * the Base64 encoded data as a String + * + * @throws IOException + * in case of I/O error or badly formated Base64 + */ + @Deprecated + public Image(String base64EncodedData) throws IOException { + this(new Base64InputStream(new ByteArrayInputStream( + StringUtils.getBytes(base64EncodedData)), false)); + } + /** * Create a new {@link Image} from a stream. * @@ -89,12 +110,13 @@ public class Image implements Closeable, Serializable { /** * Read the actual image data, as a byte array. - *

- * Note: if possible, prefer the {@link Image#newInputStream()} method, as - * it can be more efficient. + * + * @deprecated if possible, prefer the {@link Image#newInputStream()} + * method, as it can be more efficient * * @return the image data */ + @Deprecated public byte[] getData() { try { InputStream in = newInputStream(); @@ -108,6 +130,30 @@ public class Image implements Closeable, Serializable { } } + /** + * Convert the given {@link Image} object into a Base64 representation of + * the same {@link Image} object. + * + * @deprecated Please use {@link Image#newInputStream()} instead, it is more + * efficient + * + * @return the Base64 representation + */ + @Deprecated + public String toBase64() { + try { + Base64InputStream stream = new Base64InputStream(newInputStream(), + true); + try { + return IOUtils.readSmallStream(stream); + } finally { + stream.close(); + } + } catch (IOException e) { + return null; + } + } + /** * Closing the {@link Image} will delete the associated temporary file on * disk. @@ -168,7 +214,7 @@ public class Image implements Closeable, Serializable { * @throws IOException * in case of I/O error */ - private void writeObject(java.io.ObjectOutputStream out) throws IOException { + private void writeObject(ObjectOutputStream out) throws IOException { InputStream in = newInputStream(); try { IOUtils.write(in, out); @@ -189,8 +235,7 @@ public class Image implements Closeable, Serializable { * @throws ClassNotFoundException * will not be thrown by this method */ - @SuppressWarnings("unused") - private void readObject(java.io.ObjectInputStream in) throws IOException, + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { data = getTemporaryFile(); IOUtils.write(in, data);