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

  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011