Aujourd'hui, l'enseignant voulait que je puisse aider à remplacer leurs plus de 200 photos par un fond blanc. La plupart des photos sont bleues et rouges.
Utiliser ps? Non! Utilisez Java! !
Oui, ma première réaction a été d'utiliser Java et de trouver un code source pour obtenir des pixels d'image sur Internet. Après avoir fait un pas, je l'ai inventé et il a fallu une demi-minute pour traiter plus de 200 photos.
/ ** * Fonction: * Lot convertir les lumières d'encre à fond bleu en blanc à fond * principalement, il peut être traité en centaines ou milliers de photos * @author zhao junfu * * / public class ImageColordemo {public static void main (String args []) lance ioexception {/ ** * Directory d'image à traiter * / fichier dir = nouveau fichier ("d: / d4"); / ** * Répertoriez les images dans le répertoire et obtenez le tableau * / file [] files = dir.listFiles (); / ** * Traverser le tableau * / for (int x = 0; x <files.length; x ++) {/ ** * définir un tableau RGB, car le motif RGB de l'image est représenté par trois 0-255, comme le blanc (255,255,255) * / int [] RGB = new int [3]; / ** * Stream tamponné utilisé pour traiter l'image * / BufferedImage BI = NULL; Essayez {/ ** * Utilisez ImageIo pour lire l'image dans le tampon * / bi = imageo.read (fichiers [x]); } catch (exception e) {e.printStackTrace (); } / ** * Obtenez la longueur et la largeur de l'image * / int width = bi.getWidth (); int hauteur = bi.getheight (); int minx = bi.getMinx (); int miny = bi.getminy (); System.out.println ("In Process:" + Files [x] .getName ()); / ** * Voici les pixels de l'image. Parce que la couleur arrière de l'image doit être traitée, la couleur sur le pixel spécifié doit être remplacée par la couleur cible * Voici une boucle de deuxième couche, traversant chaque pixel sur la longueur et la largeur * / pour (int i = minx; i <width; i ++) {pour (int j = miny; j <hauteur; j ++) {// System.out.tprint (bi.getrg (jw, ih); / ** * Obtenez la valeur RGB sur le pixel spécifié (i, j), * / int pixel = bi.getrgb (i, j); / ** * Effectuez des opérations de bits séparément pour obtenir la valeur sur RGB * / RGB [0] = (Pixel & 0xFF0000) >> 16; rgb [1] = (pixel & 0xff000) >> 8; rgb [2] = (pixel & 0xff); / ** * Effectuer un opération de changement de couleur, je veux changer la base bleue en base blanche, donc je déterminerai si la valeur RVB sur l'image est dans la plage bleue des pixels * / if (rgb [0] <155 && rgb [0]> 0 && rgb [1] <256 && rgb [1]> 105 && rgb [2] <256 && rgb [2]> 105) Le jugement passé, puis changez le pixel en blanc * / bi.setrgb (i, j, 0xffffff); }}} System.out.println ("/ T Le traitement est terminé:" + Files [x] .getName ()); System.out.println (); / ** * Enregistrez l'objet tampon dans un nouveau fichier * / fileOutputStream ops = new FileOutputStream (nouveau fichier ("d: / d5 /" + x + ". Jpg")); ImageIo.write (BI, "JPG", OPS); ops.flush (); ops.close (); }}} Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.