get bytes from Image and back complete code example

10 views
Skip to first unread message

shop.servic...@gmail.com

unread,
Feb 11, 2019, 10:04:58 PM2/11/19
to CodenameOne Discussions
If you are experiencing an issue please mention the full platform your issue applies to:
IDE: NetBeans/Eclipse/IDEA NetBeans 8.2
Desktop OS Windows 10
Simulator Latest
Device PS, Android, IOS

Can you please provide complete code listing where we get bytes from Image (which I store in DB)
The convert those bytes to Image

I have these methods:
    public byte[] getBytesFromImage(com.codename1.ui.Image image) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] BytesFromImage = new byte[0];
        try {
            if (image != null) {
                ImageIO.getImageIO().save(image, outputStream, ImageIO.FORMAT_PNG, 1f);
                BytesFromImage = outputStream.toByteArray();
            }
        } catch (Exception e) {
            e.printStackTrace();
            MyLog.e(e);
        }
        return BytesFromImage;
    }


    public Image getImageFromBytes(byte[] img) {
        Image image = null;
        try {
            int width = 978;
            int height = 550;
            image = Image.createImage(img, 0, img.length);
            if (image.getHeight() > height || image.getWidth() > width) {
                image = image.scaled(height, width);
            }
        } catch (Exception e) {
            e.printStackTrace();
            MyLog.e(e);
        }
        return image;
    }


java.lang.IllegalArgumentException: Width (-35) and height (-20) cannot be <= 0
 at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 at java.awt.image.BufferedImage.<init>(BufferedImage.java:333)
 at com.codename1.impl.javase.JavaSEPort.createTrackableBufferedImage(JavaSEPort.java:5081)
 at com.codename1.impl.javase.JavaSEPort.createTrackableBufferedImage(JavaSEPort.java:5064)
 at com.codename1.impl.javase.JavaSEPort.createImage(JavaSEPort.java:5089)
 at com.codename1.impl.javase.JavaSEPort.scale(JavaSEPort.java:5277)
 at com.codename1.ui.Image.scale(Image.java:1021)
 at com.codename1.ui.Image.scaledImpl(Image.java:967)
 at com.codename1.ui.Image.scaled(Image.java:932)
 at com.codename1.ui.Image.scaledSmallerRatio(Image.java:898)
 at com.codename1.components.SignatureComponent.setSignatureImage(SignatureComponent.java:261)


Please Advise:

Regards

Shai Almog

unread,
Feb 11, 2019, 10:19:46 PM2/11/19
to CodenameOne Discussions
That's a bug in signature component, we'll fix it for the coming update.

shop.servic...@gmail.com

unread,
Feb 12, 2019, 8:22:04 AM2/12/19
to CodenameOne Discussions
Thanks.
Reply all
Reply to author
Forward
0 new messages