May i know why doesn’t the image appear one by one similar to a photo mosaic rendering by using the method below?
public void paint(Graphics g)
{
try
{
Graphics2D g2 = (Graphics2D) g;
float alphaVal;
AlphaComposite ac;
RenderingHints rh = g2.getRenderingHints();
rh.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHints(rh);
String filename = "c:/images/church.jpg";
Image img = getToolkit().getImage(filename);
// the position of the image
AffineTransform aTran = new AffineTransform();
aTran.translate(1f, 1f);
g2.transform(aTran);
//alpha blending when two or more images are blended together
alphaVal = alpha;
ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaVal);
g2.setComposite(ac);
g2.drawImage(img, new AffineTransform(), this);
}
catch(Exception e)
{}
Graphics2D g2 = (Graphics2D)g;
int w = getWidth();
int h = getHeight();
int imageWidth, imageHeight;
int totalHeight = 84;
int totalWidth = 600;
int x = 0;
int y = 0;
float alphaVal;
AlphaComposite ac;
//int j=0;
for(int j=0; j<images.length; j++)
{
imageWidth = images[j].getWidth();
imageHeight = images[j].getHeight();
if ((j % 5) == 0)
{
//x and y axis
/*To be able to display all the small images accordingly, need translate (x,y).
*Use for loop.*/
AffineTransform aTran = new AffineTransform();
aTran.translate(0.5f, 0.5f);
g2.transform(aTran);
// reset x for next row (indeed, even for first row) to be at the
// first column of this row
x = 0;
// increment y to go to the next row
y += 84;
}
x += 122; // same as x = x + 122
if(j == 0)
alphaVal = alpha;
else
alphaVal = 1.0f - alpha;
ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaVal);
g2.setComposite(ac);
g2.drawImage(images[j], x, y, this);
}
}