Specialeffekter och spelutveckling
i Java(TM) - Bilder
av Anibal Wainstein
4.0 Bilder
Java applets och applikationer kan läsa två typer
av bildformat, JPEG och GIF format. Java stöder även
transparenta GIF89 bilder, dessa kan få andra
bakomliggande bilder att "lysa igenom" den transparenta
bilden. Observera att trots detta så kan en applet aldrig
göras transparent, dvs du kan inte ha en transparent
GIF89 bild i en applet och samtidigt få hemsidans bakgrund
att lysa igenom. Det är förmågan att kunna
ladda in bilder och behandla eller animera dessa som gör
Java applets till ett alternativ gentemot GIF89 animationer.
När man dessutom kan lägga till interaktion till
dessa animationer blir det ett mycket överlägsen
alternativ. I det här kapitlet kommer vi att gå
igenom hur man hanterar och arbetar med bilder. Observera
att fr.o.m. nu så kommer appletnamn, metoder och variabler
att skrivas på engelska i källkoden.
4.0.1 Hur man laddar in
och hanterar bilder i Java applets (Image klassen)
Det är Image klassen som hanterar bilder. Om en applet
ska kunna ladda in bilder så måste man specifiera
var bilden finns och vad filen heter, och som nämnt ovan,
de måste vara i JPEG eller GIF87/89 format. Du kan ladda
in en bild med getImage() metoden:
public Image logo;
public void init()
{
logo=getImage(getDocumentBase(),"logo.jpg");
}
Metoden getImage() kräver två argument: det ena
är en URL till där bilden finns och det andra argumentet
är filens namn i form av en sträng. Metoden getDocumentBase()
här ovan kommer att ge ett URL objekt som pekar där
appletens klassfil finns. Appleten kommer att kunna ladda
in bilden "logo.jpg" om den finns i samma katalog
som klassfilen. Då vi går igenom länkar i
kapitel 5 kommer vi titta närmare på URL klassen.
Med detta så kan nu bilden laddas in. Observera dock
att bilden inte laddas in direkt av appleten, detta kan leda
till lustiga effekter som du kommer att se senare.
En bild kan sedan ritas ut med Graphics metoden drawImage()
på följande sätt:
public void paint(Graphics g)
{
g.drawImage(logo,0,0,this)
}
Det finns flera olika drawImage metoder, men den enklaste
är den som visas i kodexemplet ovan. Det är den
här metoden vi kommer att använda mest i kursen.
Argumenten är ett Image objekt, x och y positionerna
för bilden samt en pekare till själva appleten (this).
Klicka här för
att se hur det fungerar. Observera att bilden bör vara
lika stor som appleten.
Nästa sida >>
|