SORU
23 ŞUBAT 2010, Salı


İki resim birleştirme

Java'da iki görüntü (Bufferedİmage) birleştirmek istiyorum. Eğer şeffaflık olsaydı hiç bir sorun olmazdı. Temel görüntü zaten biraz şeffaflık var. Bu tutun ve "bu, ikinci görüntü. bir maske uygulamak istiyorum Bu ikinci görüntü yok opak piksel var, aslında neredeyse tamamen şeffaf, daha saydam bir çeşit vermek için bazı piksel vardır "", bir refleks gibi. ışık efekti Grafik ekran üzerinde bunu yapmak istemiyorum, sonuç birleştirme ile bir Bufferedİmage elde etmek için ihtiyacım var. önemli bir ayrıntı:

Biri bana yardım edebilir mi? Teşekkürler!

DETAYLARI: iki resim şeffaflık sağlamak Birleştirme. Bu yapmam gereken şey.

http://stackoverflow.com/questions/221830/set-bufferedimage-alpha-mask-in-java iki resim saydamlık sahip işlemez çünkü ihtiyacım olan şey yapmaz bu ilk resim şeffaflık değiştirir. not:

CEVAP
23 ŞUBAT 2010, Salı


Sadece şeffaflık ile yeni bir Bufferedİmage oluşturmak, diğer iki resim (tam veya yarı şeffaflık ile) boya. Bu gibi görünecektir:

combining images

Örnek kod (resim denir 'görüntü.png' ve 'kaplama.') png:

File path = ... // base path of the images

// load source images
BufferedImage image = ImageIO.read(new File(path, "image.png"));
BufferedImage overlay = ImageIO.read(new File(path, "overlay.png"));

// create the new image, canvas size is the max. of both image sizes
int w = Math.max(image.getWidth(), overlay.getWidth());
int h = Math.max(image.getHeight(), overlay.getHeight());
BufferedImage combined = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);

// paint both images, preserving the alpha channels
Graphics g = combined.getGraphics();
g.drawImage(image, 0, 0, null);
g.drawImage(overlay, 0, 0, null);

// Save as new image
ImageIO.write(combined, "PNG", new File(path, "combined.png"));

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • The Bad Tutorials

    The Bad Tuto

    6 EKİM 2009