22. december 2003 - 12:40Der er
4 kommentarer og 1 løsning
Skaleret visning af billede
Målet er, at der i en JPane el. lign. vises et billede, som er skaleret så det fylder så meget som muligt, uden at blive større end der er plads til.
Jeg har to problemer nu:
1) Billedet bliver slet ikke vist, skaleret eller ej. (Jeg får bare et vindue med grå baggrund.) 2) Jeg vil gerne skalere ved at angive størrelsen, i stedet for at bruge faktorer.
(Jeg har tjekket at det ikke er filnavnet der er forkert, hvis jeg ændrer det til noget forkert får jeg en fejl.)
Jeg har lavet en lille klasse, der wrapper alt det besværlige. :) Jeg mangler blot at få den til ikke at ændre proportioner, og at finde ud af hvorfor den er så langsom. ;-)
import java.awt.*; import javax.swing.*;
/** * @author Niels Andersen <niels@myplace.dk> * */ public class MyImage extends JPanel {
private Image image;
public MyImage(String path, Dimension size, Component component) { MediaTracker mediaTracker = new MediaTracker(component);
Jeg har leget lidt med det. Hvis jeg fjerner MediaTracker bliver metoden færdig langt hurtigere. Men til tager det mange gange længere tid før billedet kommer frem.
Jeg har modificeret i min klasse, så den også tager hensyn til proportioner. Nu er der to MediaTrackers, men umiddelbart ser det ikke ud til at køre langsommere:
import java.awt.*; import javax.swing.*;
/** * @author Niels Andersen <niels@myplace.dk> * */ public class MyImage extends JPanel {
private Image image;
public MyImage(String path, Dimension size, Component component) { MediaTracker mediaTracker = new MediaTracker(component);
int width = (int) Math.round(source.width * factor); int height = (int) Math.round(source.height * factor);
return new Dimension(width, height); } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.