Je viens d'apprendre comment utiliser les threads hier et j'essaye d'encoder des images en utilisant des threads, mais je vais obtenir cette erreur java.lang.IllegalArgumentException: im == null!
J'ai essayé de faire exactement la même chose sans fil et ça a bien fonctionné lentement, pas à cause de l'image mais à cause du temps qu'il faut pour encoder les images. le WinDef.HDC est un type de variable que j'ai obtenu à partir de la bibliothèque JNA. Quand je l'ai essayé sans fil, je pouvais facilement écrire 1000 images (environ 60mb).java.lang.IllegalArgumentException: im == null! erreur
//The thread class
public class imageEncoderThread extends Thread {
HDC originalImage;
BufferedImage image;
public imageProcessThread (HDC rI) {
originalImage = rI'
}
@Override
public void run() {
//returns a buffered image
image = process(rawImage);
try {
ImageIO.write(image, "jpg", new File (filePath));
} catch (IOException e) {
}
}
}
//full stack trace
Exception in thread "Thread-5" java.lang.IllegalArgumentException: im == null!
at javax.imageio.ImageIO.write(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
at com.capture.SingleImageEncoderThread.run(Thread.java:33)
Exception in thread "Thread-7" java.lang.IllegalArgumentException: im == null!
at javax.imageio.ImageIO.write(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
at com.capture.SingleImageEncoderThread.run(Thread.java:33)
Exception in thread "Thread-6" java.lang.IllegalArgumentException: im == null!
at javax.imageio.ImageIO.write(Unknown Source)
at javax.imageio.ImageIO.write(Unknown Source)
//and so on with the same exception
Il semble que l'image = JNAScreenShot.encodeRawWindow (rawImage, bounds); à cette ligne l'image est nulle. Avez-vous essayé d'imprimer System.out? – kosa
essayé maintenant il imprime null il semble que, pour une raison quelconque, il ne passe pas l'objet dans le fil - sur une note de côté quand j'ai vérifié l'API pour le WinDef.HDC il étend poignée ne sais pas si cela a un rapport avec il? – user4090
Je ne sais pas quelle est cette méthode, dès que c'est corrigé, tout devrait bien fonctionner. – kosa