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

  • Andrey Menshikov

    Andrey Mensh

    28 Ocak 2012
  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011