2011-04-29 33 views
9

tôi đang làm việc trên tạo ra một tool.Looking chỉnh sửa hình ảnh trực tuyến với một số refernce làm thế nào tôi có thể thêm một hình ảnh với khoảng trắng trên ví dụ side.For đúng nhìn thấy hình ảnh này enter image description hereJava image đệm

Trả lời

9

Có lẽ, bạn muốn tạo một hình ảnh mới từ một hình ảnh hiện có, trong đó hình ảnh mới có khoảng trắng ở bên trái và bên phải?

Giả sử hình ảnh chưa được đệm là BufferedImage và được gọi là 'hình ảnh'. Giả sử số lượng khoảng trắng bạn muốn ở mỗi bên là 'w'. Những gì bạn muốn làm là tạo ra một BufferedImage mới rộng hơn so với bản gốc, sau đó sơn toàn bộ điều trắng, và cuối cùng rút ra những hình ảnh nhỏ hơn trên đầu trang của nó:

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

Tạo một đối tượng BufferedImage mới Đúng kích cỡ; sử dụng Graphics.fillRect() để sơn màu trắng; vẽ hình ảnh vào góc trên cùng bên trái với drawImage(); sau đó lưu hình ảnh mới của bạn.

3

Nếu có ai đến khi một vấn đề tương tự, tôi sẽ dứt khoát giới thiệu imgScalr. Bạn có thể thêm đệm với nghĩa là một dòng imageSource= Scalr.pad(imageSource,pad,Color.White);.

+0

Cảm ơn bạn về mẹo tuyệt vời! – narzero

+1

imgScalr có vẻ là một thư viện đẹp, nhưng tôi không thấy bất kỳ cách nào để pad chỉ có 2 biên giới (tức là, bên trái-bên phải); padding luôn được thêm vào tất cả 4 đường viền. Tất nhiên, bạn có thể cắt sau đó để loại bỏ các padding từ biên giới trên cùng, nhưng điều này không phải là rất sạch sẽ và dễ đọc. –