Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF ou
autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF ou
autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF ou
autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Eraser Head wrote:
Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Fabien Bergeret wrote:Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
Fabien Bergeret wrote:
Eraser Head wrote:
Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
Fabien Bergeret wrote:Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou GIF
ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne vois
pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le Graphics
en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
Eraser Head wrote:Fabien Bergeret wrote:Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou
GIF ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne
vois pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le
Graphics en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
paint (heritee de Component).
Le HTMLEditorKit ne s'utilise pas directement, mais de maniere implicite
quand le type mime des donnees manipulees par le JEditorPane est text/html
Eraser Head wrote:
Fabien Bergeret wrote:
Eraser Head wrote:
Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou
GIF ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne
vois pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le
Graphics en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
paint (heritee de Component).
Le HTMLEditorKit ne s'utilise pas directement, mais de maniere implicite
quand le type mime des donnees manipulees par le JEditorPane est text/html
Eraser Head wrote:Fabien Bergeret wrote:Eraser Head wrote:Bonjour à tous,
Voilà, je cherche à créer en Java des imagettes au format PNG (ou
GIF ou autre) à partir de pages HTML.
Est-ce que qqun a déjà fait ça ou pourrait m'orienter sur les bonnes
classes à utiliser ?
J'ai déjà regardé "JEditorPane" et "HTMLEditorKit" mais là je ne
vois pas trop après comment transformer l'affichage en image...
Merci de votre aide !
Faire un composant integrant une HTMLEditorKit.
Ajouter un bouton de conversion quelque part.
Lorsque le bouton est clique :
Creer une image de la taille du HTMLEditorKit.
Obtenir un Graphics sur cette image.
Appliquer la methode paint sur le HTMLEditorKit en passant le
Graphics en parametre.
L'image contient maintenant la representation bitmap de la page.
Y'a plus qu'a la sauver au format "qui va bien".
Desole pour ce macro-algo simpliste, j'ai plus le code sous la main ...
Merci de ta réponse !
Bon, j'ai essayé un truc à partir de ton algo et pour l'instant je
n'obtiens qu'une image blanche :-(
Ce que je ne vois pas, c'est le lien entre HTMLEditorKit et Graphics ?!?
Il n'y pas de méthode "paint( )" dans HTMLEditorKit...
Je plonge de nouveau dans la doc et je réessaye !
Apres consultation de la doc, c'est le JEditorPane qui a une methode
paint (heritee de Component).
Le HTMLEditorKit ne s'utilise pas directement, mais de maniere implicite
quand le type mime des donnees manipulees par le JEditorPane est text/html
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee que
tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que la
page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio existe,
c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee que
tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que la
page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio existe,
c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee que
tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que la
page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio existe,
c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !
Peut etre un media tracker pourrait faire cela programmatiquement :
try {
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(img , 0);
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
Pierre
Non, le media tracker, c'est pour attendre le chargement d'une image.
Peut etre un media tracker pourrait faire cela programmatiquement :
try {
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(img , 0);
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
Pierre
Non, le media tracker, c'est pour attendre le chargement d'une image.
Peut etre un media tracker pourrait faire cela programmatiquement :
try {
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(img , 0);
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
Pierre
Non, le media tracker, c'est pour attendre le chargement d'une image.
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee
que tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que
la page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio
existe, c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee
que tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que
la page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio
existe, c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !
Ca doit etre parce que la page n'a pas encore le temps d'etre chargee
que tu cree deja l'image.
Voici mon code, adapte du tien :
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class TestThumbnail extends JFrame {
public TestThumbnail(String url, final String fichier) throws
IOException {
super("HTML thumbnail maker");
getContentPane().setLayout(new BorderLayout());
pane = new JEditorPane(url);
getContentPane().add(pane, BorderLayout.CENTER);
JButton button = new JButton("Créer fichier");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
convert(fichier);
}
});
getContentPane().add(button, BorderLayout.SOUTH);
setSize(800, 600);
setVisible(true);
}
private JEditorPane pane;
public void convert(String filename) {
try {
BufferedImage img;
Graphics g;
img = new BufferedImage(pane.getWidth(), pane.getHeight(),
BufferedImage.TYPE_INT_RGB);
g = img.getGraphics();
pane.paint(g);
// Encode as a JPEG
FileOutputStream fos = new FileOutputStream(filename);
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(img);
fos.close();
} catch (FileNotFoundException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (ImageFormatException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
} catch (IOException e) {
// TODO Bloc catch auto-généré
e.printStackTrace();
}
} // end init()
public static void main(String[] args) throws Exception {
TestThumbnail tt = new TestThumbnail("http://www.yahoo.fr",
"yahoo.jpg");
} // end main()
} // end TestThumbnail
La difference, c'est que le generation de jpg ne se fait que lorsque le
bouton est clique. Comme ca, on a le temps de verifier visuellement que
la page a bien ete chargee.
Y'a peut etre un moyen de la faire par programmation, mais la, en 5
minutes, je sais pas.
Sinon, pour l'encodage en jpg, depuis que le package javax.imageio
existe, c'est assez moche d'utiliser les classes non standard
com.sun.image.codec.jpeg.*
Bon courage pour la finalisation de ton programme !