Avatar billede reanimator Nybegynder
03. september 2003 - 10:46 Der er 4 kommentarer

Zoom funktion med gif billeder

Hej

Jeg skal ha' udviklet en zoom funktion til et program jeg arbejder på. P.t. er alle de billeder jeg har i programmet, oprettet som et ImageIcon på 100 * 100. Billederne har jeg konstrueret så de passer til 100 * 100. Nu er det bare sådan, at det nogle gange ville være bedre hvis de eksempelvis var 50 * 50.
Jeg har prøvet at ændre på ImageIcon størrelsen v.h.a. setSize(x, y). Men resultatet bliver, at der så kun vises et udsnit af, og ikke hele billedet i en mindre størrelse.

/Reanimator
Avatar billede _carsten Nybegynder
03. september 2003 - 13:02 #1
Brug getScaledInstance(width, height, hint)

Eksempel:

ImageIcon imageIcon = new javax.swing.ImageIcon("c:\\xxxxxxxx.gif");
Image image = imageIcon.getImage();

image.getScaledInstance(50,50,Image.SCALE_DEFAULT);
Avatar billede _carsten Nybegynder
03. september 2003 - 17:10 #2
Hvis det skal være mere lidt fancy.

public class Testing extends javax.swing.JFrame {
   
    public Testing() {
        initComponents();
        javax.swing.ImageIcon imageIcon = new javax.swing.ImageIcon("D:\\javatest\\T1.gif");
        image = imageIcon.getImage();
        setSize(400,400);
    }
   
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jSlider1 = new javax.swing.JSlider();

        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jLabel1.setIcon(new javax.swing.ImageIcon("D:\\javatest\\T2.gif"));
        getContentPane().add(jLabel1, java.awt.BorderLayout.SOUTH);

        jPanel1.setLayout(new java.awt.GridLayout(2, 0));

        jPanel1.setPreferredSize(new java.awt.Dimension(10, 84));
        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel2.setText("Juster billedets st\u00f8rrelse");
        jPanel1.add(jLabel2);

        jSlider1.setMajorTickSpacing(10);
        jSlider1.setPaintLabels(true);
        jSlider1.setPaintTicks(true);
        jSlider1.setSnapToTicks(true);
        jSlider1.setValue(100);
        jSlider1.setValueIsAdjusting(true);
        jSlider1.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jLabel1.setIcon(new javax.swing.ImageIcon(
                                image.getScaledInstance(jSlider1.getValue(),
                                jSlider1.getValue(),
                                java.awt.Image.SCALE_SMOOTH)));
            }
        });

        jPanel1.add(jSlider1);

        getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);

        pack();
    }
 
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }
   
    public static void main(String args[]) {
        new Testing().show();
    }
   
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JSlider jSlider1;
    private java.awt.Image image;
}
Avatar billede _carsten Nybegynder
03. september 2003 - 17:12 #3
Der var jeg lige hurtig nok, udskift "D:\\javatest\\T1.gif"
med stien til et af dine billeder
Avatar billede _carsten Nybegynder
02. december 2003 - 20:44 #4
Lukketid ?????????

Er problemet løst ????????????
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester