2011-04-29 24 views
9

estoy trabajando en la creación de un tool.Looking edición de imágenes en línea para algunos refernce cómo puedo añadir que una imagen con el espacio en blanco en el ejemplo de la derecha side.For ver esta imagen enter image description hereJava imagen de relleno

Respuesta

9

Presumiblemente, ¿desea crear una nueva imagen a partir de una imagen existente, donde la nueva imagen tiene espacio en blanco a la izquierda y a la derecha?

Suponga que la imagen sin relleno era una Imagen Buffered y se denomina 'imagen'. Suponga que la cantidad de espacios en blanco que desea en cada lado es 'w'. Lo que se quiere hacer es crear un nuevo BufferedImage más ancho que el original, y luego pintar toda la cosa blanca, y finalmente dibujar la imagen más pequeña en la parte superior de la misma:

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

Crear un nuevo objeto de BufferedImage el tamaño adecuado; use Graphics.fillRect() para pintarlo de blanco; dibuja la imagen en la esquina superior izquierda con drawImage(); luego guarda tu nueva imagen.

3

Si alguien se encuentra con un problema similar, lo haría definitivamente recomiendo imgScalr. Puede agregar relleno con literalmente una línea imageSource= Scalr.pad(imageSource,pad,Color.White);.

+0

¡Gracias por el gran consejo! – narzero

+1

imgScalr parece ser una buena biblioteca, pero no veo ninguna forma de rellenar solo dos bordes (es decir, lado izquierdo-derecho); el relleno siempre se agrega a los 4 bordes. Por supuesto, puede recortar después para eliminar el relleno de los bordes superiores e inferiores, pero esto no es muy limpio y legible. –