package be.nikiroo.utils.android;
import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.util.stream.Stream;
import javax.imageio.ImageIO;
@Override
protected boolean check() {
// If we can get the class, it means we have access to it
- @SuppressWarnings("unused")
- Object test = Bitmap.class;
+ Config.ALPHA_8;
return true;
}
-
+
@Override
public void saveAsImage(Image img, File target, String format)
throws IOException {
* in case of IO error
*/
static public Bitmap fromImage(Image img) throws IOException {
- byte[] array = img.getData();
- int size = array.length;
- // TODO: check if we can use a stream, too
- Bitmap image = BitmapFactory.decodeByteArray(array, 0, size);
- if (image == null) {
- String ssize = StringUtils.formatNumber(size);
- throw new IOException(
- "Failed to convert input to image, size was: " + ssize);
+ InputStream stream = img.newInputStream();
+ try {
+ Bitmap image = BitmapFactory.decodeStream(stream);
+ if (image == null) {
+ String ssize = StringUtils.formatNumber(img.getSize());
+ throw new IOException(
+ "Failed to convert input to image, size was: " + ssize);
+ }
+ } finally {
+ stream.close();
}
-
+
return image;
}
}