Error: sun.awt.image.ToolkitImage cannot be attributed to java.awt.image.BufferedImage

please help me can't do this thing to work with me sun.awt.image.ToolkitImage cannot be dropped in java.awt.image.BufferedImage

if (shape.hasImage()) { // If this shape is an image, extract image to file String extension = ImageTypeToExtension(shape.getImageData().getImageType()); String imageFileName = MessageFormat.format("Image.ExportImages.{0} Out.{1}", imageIndex, extension); String strBarCodeImageExtracted = "" + imageFileName; shape.getImageData().save(strBarCodeImageExtracted); // Recognize barcode from this image BarCodeReader reader = new BarCodeReader ((BufferedImage) Toolkit.getDefaultToolkit().getImage(strBarCodeImageExtracted),BarCodeReadType.Code39Standard); while (reader.read()) { System.out.println("codetext: " + reader.getCodeText()); } imageIndex++; } 
0
source share
1 answer

EDIT: This answer was accepted after the comment was written, so it must be assumed that the comment was the actual solution. Comment was

... replace Toolkit.getDefaultToolkit().getImage(...) with ImageIO.read(...) ...


Original answer:

You can either try to read the image using ImageIO , or think about ImageIO image in the newly highlighted BufferedImage, for example. using type method

 public static BufferedImage convertToBufferedImage(Image image) { BufferedImage newImage = new BufferedImage( image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics2D g = newImage.createGraphics(); g.drawImage(image, 0, 0, null); g.dispose(); return newImage; } 

And then in your case:

 Image image = Toolkit.getDefaultToolkit().getImage(strBarCodeImageExtracted); BufferedImage bufferedImage = convertToBufferedImage(image); BarCodeReader reader = new BarCodeReader(bufferedImage,BarCodeReadType.Code39Standard); 
+3
source

All Articles