Hem E-böcker Specialeffekter och spelutveckling i Java Bilder

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 >>