當我在畫布上繪製圖像時,圖像周圍的白色像素也與圖像邊界相關。有關如何防止這種情況的任何提示?我想加載一個沒有額外白色像素的圖像。我該怎麼做呢?
回答
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.imageio.ImageIO;
import java.net.URL;
class ImageTransparencyByColor {
public static BufferedImage getTransparentImage(
BufferedImage image, Color transparent) {
// must have a transparent image
BufferedImage img = new BufferedImage(
image.getWidth(),image.getHeight(),BufferedImage.TYPE_INT_ARGB);
Graphics2D g= img.createGraphics();
for (int x=0; x<img.getWidth(); x++) {
for (int y=0; y<img.getHeight(); y++) {
if (image.getRGB(x,y)!=transparent.getRGB()) {
img.setRGB(x,y, image.getRGB(x,y));
}
}
}
g.dispose();
return img;
}
public static void main(String[] args) throws Exception {
URL url = new URL ("http://www.gravatar.com/avatar" +
"/ab5193916ccf152f96b0a69323e934a1?s=128&d=identicon&r=PG");
final BufferedImage trans = getTransparentImage(
ImageIO.read(url), Color.WHITE);
Runnable r = new Runnable() {
@Override
public void run() {
JLabel gui = new JLabel(new ImageIcon(trans));
JOptionPane.showMessageDialog(null, gui);
}
};
SwingUtilities.invokeLater(r);
}
}
完美工作。謝謝! – Tikitaco
將您的圖像插入到JPanel中。帆布是一個重量級的組件。或者,嘗試更改畫布的Alpha。 this.setBackground(new Color(0,0,0,0);
編輯:試試這個。爲你的圖像創建一個類。您初始化圖像的方式並不重要。
public class MyImage extends JPanel {
private final URL IMG_DIRECTORY = Main.class.getResource("/res/yourImage.png"); // Image directory
public MyImage() {
try {
img = ImageIO.read(IMG_DIRECTORY);
} catch (Exception e) {
e.printStackTrace();
}
this.setSize(img.getWidth(null), img.getHeight(null);
}
@Override
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
在你的框架類中,聲明你的形象類MyImage yourImage = new MyImage();
,然後將其添加到任何你的contentPane了。
如果我的2個答案中的任何一個都沒有幫助你,請發佈你的SSCCE –
im正在加載的圖片覆蓋了一系列不同的彩色背景,所以我需要白色像素透明以某種方式... – Tikitaco
答案編輯.. –
- 1. 我想要一個UINavigationItem是一個帶圖像的方形按鈕。我該怎麼做呢?
- 2. 我怎樣才能沒有紅色像素沒有黑像素的圖像PIL
- 3. 我想修飾一個python模塊的類。我該怎麼做呢?
- 4. 我想添加一天到我的約會我該怎麼做
- 5. 我被要求編碼一個URL。我該怎麼做呢?
- 6. 我該怎麼做呢?用C
- 7. 我該怎麼做queryOrdered(bychild)呢?
- 8. 額外的白線/像素
- 9. 我有一個UICollectionView,我想在一個單元格中顯示一個圖像,該圖像轉到一個普通的ViewController。我怎麼做?
- 10. 我想運行「HttpAsyncTask」...我該怎麼做?
- 11. 我不想選擇隱藏的元素,我該怎麼做?
- 12. 我想發送一個變量到xxx.php我該怎麼做?
- 13. 爲什麼我不能分配一個常量值,我該怎麼做呢?
- 14. 爲什麼Python沒有整數的「均勻」方法,我應該怎麼做呢?
- 15. 如何在Drupal 8菜單項中添加額外的字段。我想添加一個額外的圖像域
- 16. 我該怎麼做?
- 17. 我該怎麼做?
- 18. 我該怎麼做? (想不到一個準確的標題)(PYTHON)
- 19. 我怎樣纔能有一個白色背景的圖像浮動左?
- 20. imshow()函數顯示空的灰色圖像。我該怎麼辦?
- 21. 我應該怎麼做一個聚合?
- 22. Windows Phone 7:當用戶點擊圖像時,我該怎麼做?
- 23. 六邊形+邊框半徑+背景圖像,我該怎麼做?
- 24. 需要在按下時放大圖像。我該怎麼做?
- 25. 我想複製這個導航欄,這是一個android版本,我該怎麼做呢?
- 26. 我怎麼可以做一個圖像幻燈片
- 27. 如果我想隱藏我的textarea,我該怎麼做?
- 28. 我想在java中傳遞三個不同的字符串給我的主要方法。我該怎麼做呢?
- 29. 如何使一個wxpython位圖按鈕只有圖像,沒有額外的像素和圖像邊框
- 30. 任何人都可以告訴我怎麼做這個圖像加載?
您需要繪製透明圖像:http://stackoverflow.com/questions/8272583/drawing-transparent-images-in-java-graphics2d – zebediah49
我讀了,我仍然困惑xx – Tikitaco
如果圖像一開始不透明,您可以對其進行過濾,使白色像素變爲透明,但這也會發生在內部白色像素的情況下,因此必須小心操作。 –