Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Исходный текст программы AlphaDemo.java

Оглавление

Назад

// ==========================================
// AlphaDemo.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web:    http://www.glasnet.ru/~frolov 
// ==========================================

import java.awt.*;
import java.applet.*;
import java.awt.image.*;

public class AlphaDemo extends Applet
{
  Image img1;
  Image img2;
  
  // ============================================
  // init
  // ============================================
  public void init()
  {
    img1 = getImage(getCodeBase(), "img1.jpg");
    img2 = getImage(getCodeBase(), "img2.jpg");
    
    MediaTracker mt = new MediaTracker(this);
    mt.addImage(img1, 0);  
    mt.addImage(img2, 0);  
    try
    {
      mt.waitForAll();
    }
    catch(InterruptedException ie)
    {
      return;
    }	
  }
  
  // ===========================================
  // paint
  // ===========================================
  public void paint(Graphics g)
  {
    g.drawImage(img1, 0, 0, this);
    g.drawImage(imgToTransparent(img2),
      0, 0, this);
  }  
  
  // ===========================================
  // imgToTransparent
  // ===========================================
  Image imgToTransparent(Image imgSrc)
  {
    TransparentImageFilter trFilter = 
      new TransparentImageFilter();
      
    ImageProducer ip = new FilteredImageSource(
      imgSrc.getSource(), trFilter);
    
    Image imTransparent = createImage(ip);    
    
    MediaTracker mt = new MediaTracker(this);
    mt.addImage(imTransparent, 0);  
    
    try
    {
      mt.waitForAll();
    }
    catch(InterruptedException ie)
    {
      return null;
    }	
    
    return imTransparent;
  }
  
  // ===========================================
  // getAppletInfo
  // ===========================================
  public String getAppletInfo()
  {
    return "Name: AlphaDemo";
  }
}

// ===========================================
// Class TransparentImageFilter
// ===========================================
class TransparentImageFilter 
  extends RGBImageFilter
{
  // ===========================================
  // filterRGB
  // ===========================================
  public int filterRGB(int x, int y, int nRGB)
  {
    int nAlpha = 0x80;
    return((nAlpha << 24) | (nRGB & 0xffffff));
  }
}

[Назад]