2011-04-29 2 views
9

Je travaille sur la création d'un tool.Looking de retouche d'image en ligne pour certains refernce comment puis-je ajouter une image avec un espace blanc sur bon exemple side.For voir cette image enter image description hereJava image rembourrage

Répondre

9

Vraisemblablement, vous voulez créer une nouvelle image à partir d'une image existante, où la nouvelle image a des espaces blancs sur la gauche et la droite? Supposons que l'image non rembourrée soit une image tamponnée et qu'elle soit appelée "image". Supposons que la quantité d'espace que vous voulez de chaque côté soit 'w'. Ce que vous voulez faire est de créer une nouvelle BufferedImage plus large que l'original, puis peindre la chose toute blanche, et enfin tirer la plus petite image sur le dessus de celui-ci:

BufferedImage newImage = new BufferedImage(image.getWidth()+2*w, image.getHeight(), image.getType()); 

Graphics g = newImage.getGraphics(); 

g.setColor(Color.white); 
g.fillRect(0,0,image.getWidth()+2*w,image.getHeight()); 
g.drawImage(image, w, 0, null); 
g.dispose(); 
2

Créer un nouvel objet BufferedImage de la bonne taille; utilisez Graphics.fillRect() pour le peindre en blanc; dessinez l'image dans le coin supérieur gauche avec drawImage(); puis sauvegardez votre nouvelle image.

3

Si quelqu'un vient sur un problème similaire, je voudrais recommander définitivement imgScalr. Vous pouvez ajouter un remplissage avec littéralement une ligne imageSource= Scalr.pad(imageSource,pad,Color.White);.

+0

Merci pour le bon conseil! – narzero

+1

imgScalr semble être une bibliothèque sympa, mais je ne vois pas comment tamponner seulement 2 bordures (c.-à-d., Le côté gauche-droit); Le remplissage est toujours ajouté aux 4 bordures. Bien sûr, vous pouvez recadrer ensuite pour enlever le rembourrage des bordures supérieures, mais ce n'est pas très propre et lisible. –