|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
TÉLÉCHARGEMENT D'IMAGES (POCHETTES CD, DVD, LIVRES...) SUR INTERNET
Information sur la source
Description
Petite fonction permettant de télécharger des images de cds, bd, livres, dvd, films, affiches par rapport à un certain critère. Cette fonction utilise le redimensionnement d'images de javaallmanac.com, un vecteur pour la navigation entre les différents résultats, et un socket pour effectuer une requete POST, elle permet également la sauvegarde du résultat (de l'image) sous format jpg. Pour savoir quelle requête effectuer, servez vous d'un sniffeur tel que Iris.
Source
- /*Fonction réalisée par dufour137, elle permet de télécharger des images de cds, bd, livres, dvd, films, affiches
- * par rapport à un certain critère, il suffit d'entrer dans la zone de texte les critères
- *exemple : "Renaud boucan d'enfer" le résultat est le même que si vous recherchez qqch sur le site www.amazon.fr.
- *Le bouton rechercher envoie une requête POST sur le serveur amazon.fr.
- *Par la suite je lis le résultat (la page html) et je fais le teste par
- *rapport à "<td class="small" align="left"> là je remplace le nom de l'image
- *THUMBZZZ.jpg par LZZZZZZZ.jpg (t comme thumbs et L comme Large. c'est une fonction que je comptais
- *ajouter à xPort, mais amazon.fr ne m'en a pas donné l'autorisation.
- *
- *Sources: scale() et toBufferedImage() Je les avais prises sur Javaallmanac pour une fonction d'xPort et je les ai
- *adaptée pour les besoins du programme.
- */
-
- import java.net.* ;
- import java.awt.* ;
- import java.awt.event.* ;
- import javax.swing.* ;
- import javax.swing.border.* ;
- import java.io.* ;
- import java.util.Vector;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import javax.swing.border.BevelBorder;
- import java.awt.geom.AffineTransform;
- import java.awt.image.AffineTransformOp;
-
- public class PictureDownload extends JFrame implements ActionListener
- {
- URL page ;
- JLabel label;
- JButton next, precedant, search, save;
- JTextArea crit, urls;
- Image monImage=null;
- Vector adresses= new Vector();
- Image image = null;
- int index=0;
- public PictureDownload()
- {
- getContentPane().setLayout(null) ;
- label = new JLabel("Tappez le critère de recherche");
- setBounds(1,1,400, 440) ;
- getContentPane().setBackground(new Color(221, 214, 235));
-
- label.setBounds(50,50, 300,300);
- label.setBackground(Color.white);
- getContentPane().add(label);
-
- search= new JButton("Rechercher");
- search.addActionListener(this);
- search.setBounds(50,10,120,20);
- getContentPane().add(search);
-
- crit= new JTextArea();
- crit.setBounds(190,10,150,20);
- getContentPane().add(crit);
-
- save= new JButton("Enregistrer");
- save.setBounds(50,360,120,20);
- save.addActionListener(this);
- getContentPane().add(save);
-
- next= new JButton(">>");
- next.setBounds(290,40,50,10);
- next.addActionListener(this);
- next.setEnabled(false);
- getContentPane().add(next);
-
- precedant = new JButton("<<");
- precedant.setBounds(50,40,50,10);
- precedant.addActionListener(this);
- precedant.setEnabled(false);
- getContentPane().add(precedant);
- setTitle("Images sur amazon.fr");
- urls = new JTextArea();
- urls.setBounds(50,340,300,80);
- setTitle("Recherche d'images sur amazon.fr");
- setVisible(true);
- }
- /****************************/
- public void actionPerformed(ActionEvent evt)
- {
- if(evt.getSource()==search)
- {
- index=0;
- label.setIcon(null);
- next.setEnabled(false);
- precedant.setEnabled(false);
- adresses.clear();
- label.setText("recherche de l'image en cours");
- new Thread(new Runnable()
- {
- public void run()
- {
- try
- {
- Thread.sleep(0) ;
- Connect(crit.getText());
- }
- catch(InterruptedException ex)
- {
- ex.printStackTrace() ;
- }
- }
- }).start();
- }
- if(evt.getSource()==next)
- {
- index++;
- if(index+1==adresses.size())
- next.setEnabled(false);
- precedant.setEnabled(true);
- URL url = null;
- try { url = new URL(adresses.elementAt(index).toString()); image = ImageIO.read(url);} catch(MalformedURLException e) {} catch(IOException e){}
- label.setText("");
- label.setIcon(new ImageIcon(reduit(image)));
- }
- if(evt.getSource()==precedant)
- {
- index--;
- next.setEnabled(true);
- URL url = null;
- try { url = new URL(adresses.elementAt(index).toString()); image = ImageIO.read(url);} catch(MalformedURLException e) {} catch(IOException e){}
- label.setText("");
- label.setIcon(new ImageIcon(reduit(image)));
- if(index==0)
- precedant.setEnabled(false);
- }
- if(evt.getSource()==save)
- {
- Save(image, crit.getText());
- }
-
- }
- /****************************/
- public void Save(Image img, String crit)
- {
- BufferedImage rendImage = toBufferedImage(img);
- try
- {
- File file = new File(crit+".jpg");
- ImageIO.write(rendImage, "jpg", file);
- }
- catch (IOException e)
- {
- }
- }
- /****************************/
- public Image reduit(Image img)
- {
- BufferedImage bg = toBufferedImage(img);
- if(bg==null)
- return null;
- double cooeficientH= (bg.getHeight() *0.00333333333333333);
- double cooeficientL = cooeficientH;
- if(cooeficientH>1)
- cooeficientH=1/cooeficientH;
- else if(cooeficientH<1)
- cooeficientH=(1-cooeficientH)+1;
-
- if(cooeficientL>1)
- cooeficientL=1/cooeficientL;
- else if(cooeficientL<1)
- cooeficientL=(1-cooeficientL)+1;
-
- bg=scale(bg,cooeficientH,cooeficientL);
- monImage = Toolkit.getDefaultToolkit().createImage(bg.getSource());
- return monImage;
- }
- /****************Java allmanac*******************/
- public static BufferedImage scale(BufferedImage bi, double cooeficientH, double cooeficientL)
- {
- AffineTransform tx = new AffineTransform();
- tx.scale(cooeficientL, cooeficientH);
- AffineTransformOp op = new AffineTransformOp(tx,AffineTransformOp.TYPE_BILINEAR);
- BufferedImage biNew = new BufferedImage((int)(bi.getWidth() * cooeficientL), (int) (bi.getHeight() * cooeficientH), bi.getType());
- return op.filter(bi, biNew);
- }
- /****************Java allmanac*******************/
- public static BufferedImage toBufferedImage(Image image)
- {
- /** On test si l'image n'est pas déja une instance de BufferedImage */
- if( image instanceof BufferedImage )
- return((BufferedImage)image );
- else
- {
- /** On s'assure que l'image est complètement chargée */
- image = new ImageIcon(image).getImage();
- /** On crée la nouvelle image */
- if(image.getHeight(null)<=0||image.getWidth(null)<=0)
- return null;
- BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB );
- Graphics g = bufferedImage.createGraphics();
- g.drawImage(image,0,0,null);
- g.dispose();
- return(bufferedImage);
- }
- }
- /****************************/
- public void Connect(String critere)
- {
- try {
- Socket digit = new Socket("www.amazon.fr", 80);
-
- digit.setSoTimeout(20000);
- OutputStream out=digit.getOutputStream();
- String ligne=null;
- out = digit.getOutputStream();
- int imagetrouvee=0;
- String req ="field-keywords=" + Nettoye(critere) + "&url=index%3Dblended%26rank%3D%252Bamzrank&search-type=quick-search&Go.x=0&Go.y=0&Go=Go"; //HTTP/1.1";
- String header="POST http://www.amazon.fr/exec/obidos/search-handle-form/171-3920384-6113039 HTTP/1.1\n";
- header+="Connection: close\n";
- header+="Host: www.amazon.fr\n";
- header+="Content-Type: application/x-www-form-urlencoded\n";
- header+="Content-Length: " + req.length() + "\n\n";
- header+= req + "HTTP/1.1 200 OK\n";
- header+="Server: Apache\n";
-
- out.write(header.getBytes());
- out.flush();
- BufferedReader in = new BufferedReader(new InputStreamReader(digit.getInputStream()));
- boolean eof = false;
- while(!eof)
- {
- String line=in.readLine();
- if(line!=null)
- {
- int a=line.indexOf("http://images-eu.amazon.com/images/P/");
- if(a>0)
- {
- String url= line.substring(a, line.indexOf('"', a)).replaceAll("THUMBZZZ.jpg", "LZZZZZZZ.jpg");
- for(int i=0; i<15; i++)
- {
- line=in.readLine();
- if(line.equals("<td class=" + '"' + "small" + '"' + " align=" + '"' + "left" + '"' +">"))
- {
- if(imagetrouvee==0)
- {
- URL url2 = new URL(url);
- image = ImageIO.read(url2);
- label.setText("");
- label.setIcon(new ImageIcon(reduit(image)));
- next.setEnabled(true);
- }
- adresses.add(new String(url));
- urls.append(url +"\n");
- imagetrouvee++;
- }
- }
- }
- }
- else
- eof=true;
- }
- digit.close();
- }
- catch (IOException ex)
- {
- System.out.println("Erreur ES:"+ ex.getMessage());
- }
- }
- /*********************************************************/
- public String Nettoye(String str)
- {
- str=str.replace('?','@');
- str=str.replaceAll("@", "%3f");
- str=str.replaceAll(",", "");
- str=str.replace(' ', '+');
- str=str.toLowerCase();
- str=str.replaceAll("'", "%27");
- return str;
- }
- /*********************************************************/
- public static void main (String[] args)
- {
- PictureDownload wc = new PictureDownload() ;
- }
- }
-
/*Fonction réalisée par dufour137, elle permet de télécharger des images de cds, bd, livres, dvd, films, affiches
* par rapport à un certain critère, il suffit d'entrer dans la zone de texte les critères
*exemple : "Renaud boucan d'enfer" le résultat est le même que si vous recherchez qqch sur le site www.amazon.fr.
*Le bouton rechercher envoie une requête POST sur le serveur amazon.fr.
*Par la suite je lis le résultat (la page html) et je fais le teste par
*rapport à "<td class="small" align="left"> là je remplace le nom de l'image
*THUMBZZZ.jpg par LZZZZZZZ.jpg (t comme thumbs et L comme Large. c'est une fonction que je comptais
*ajouter à xPort, mais amazon.fr ne m'en a pas donné l'autorisation.
*
*Sources: scale() et toBufferedImage() Je les avais prises sur Javaallmanac pour une fonction d'xPort et je les ai
*adaptée pour les besoins du programme.
*/
import java.net.* ;
import java.awt.* ;
import java.awt.event.* ;
import javax.swing.* ;
import javax.swing.border.* ;
import java.io.* ;
import java.util.Vector;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import javax.swing.border.BevelBorder;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
public class PictureDownload extends JFrame implements ActionListener
{
URL page ;
JLabel label;
JButton next, precedant, search, save;
JTextArea crit, urls;
Image monImage=null;
Vector adresses= new Vector();
Image image = null;
int index=0;
public PictureDownload()
{
getContentPane().setLayout(null) ;
label = new JLabel("Tappez le critère de recherche");
setBounds(1,1,400, 440) ;
getContentPane().setBackground(new Color(221, 214, 235));
label.setBounds(50,50, 300,300);
label.setBackground(Color.white);
getContentPane().add(label);
search= new JButton("Rechercher");
search.addActionListener(this);
search.setBounds(50,10,120,20);
getContentPane().add(search);
crit= new JTextArea();
crit.setBounds(190,10,150,20);
getContentPane().add(crit);
save= new JButton("Enregistrer");
save.setBounds(50,360,120,20);
save.addActionListener(this);
getContentPane().add(save);
next= new JButton(">>");
next.setBounds(290,40,50,10);
next.addActionListener(this);
next.setEnabled(false);
getContentPane().add(next);
precedant = new JButton("<<");
precedant.setBounds(50,40,50,10);
precedant.addActionListener(this);
precedant.setEnabled(false);
getContentPane().add(precedant);
setTitle("Images sur amazon.fr");
urls = new JTextArea();
urls.setBounds(50,340,300,80);
setTitle("Recherche d'images sur amazon.fr");
setVisible(true);
}
/****************************/
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==search)
{
index=0;
label.setIcon(null);
next.setEnabled(false);
precedant.setEnabled(false);
adresses.clear();
label.setText("recherche de l'image en cours");
new Thread(new Runnable()
{
public void run()
{
try
{
Thread.sleep(0) ;
Connect(crit.getText());
}
catch(InterruptedException ex)
{
ex.printStackTrace() ;
}
}
}).start();
}
if(evt.getSource()==next)
{
index++;
if(index+1==adresses.size())
next.setEnabled(false);
precedant.setEnabled(true);
URL url = null;
try { url = new URL(adresses.elementAt(index).toString()); image = ImageIO.read(url);} catch(MalformedURLException e) {} catch(IOException e){}
label.setText("");
label.setIcon(new ImageIcon(reduit(image)));
}
if(evt.getSource()==precedant)
{
index--;
next.setEnabled(true);
URL url = null;
try { url = new URL(adresses.elementAt(index).toString()); image = ImageIO.read(url);} catch(MalformedURLException e) {} catch(IOException e){}
label.setText("");
label.setIcon(new ImageIcon(reduit(image)));
if(index==0)
precedant.setEnabled(false);
}
if(evt.getSource()==save)
{
Save(image, crit.getText());
}
}
/****************************/
public void Save(Image img, String crit)
{
BufferedImage rendImage = toBufferedImage(img);
try
{
File file = new File(crit+".jpg");
ImageIO.write(rendImage, "jpg", file);
}
catch (IOException e)
{
}
}
/****************************/
public Image reduit(Image img)
{
BufferedImage bg = toBufferedImage(img);
if(bg==null)
return null;
double cooeficientH= (bg.getHeight() *0.00333333333333333);
double cooeficientL = cooeficientH;
if(cooeficientH>1)
cooeficientH=1/cooeficientH;
else if(cooeficientH<1)
cooeficientH=(1-cooeficientH)+1;
if(cooeficientL>1)
cooeficientL=1/cooeficientL;
else if(cooeficientL<1)
cooeficientL=(1-cooeficientL)+1;
bg=scale(bg,cooeficientH,cooeficientL);
monImage = Toolkit.getDefaultToolkit().createImage(bg.getSource());
return monImage;
}
/****************Java allmanac*******************/
public static BufferedImage scale(BufferedImage bi, double cooeficientH, double cooeficientL)
{
AffineTransform tx = new AffineTransform();
tx.scale(cooeficientL, cooeficientH);
AffineTransformOp op = new AffineTransformOp(tx,AffineTransformOp.TYPE_BILINEAR);
BufferedImage biNew = new BufferedImage((int)(bi.getWidth() * cooeficientL), (int) (bi.getHeight() * cooeficientH), bi.getType());
return op.filter(bi, biNew);
}
/****************Java allmanac*******************/
public static BufferedImage toBufferedImage(Image image)
{
/** On test si l'image n'est pas déja une instance de BufferedImage */
if( image instanceof BufferedImage )
return((BufferedImage)image );
else
{
/** On s'assure que l'image est complètement chargée */
image = new ImageIcon(image).getImage();
/** On crée la nouvelle image */
if(image.getHeight(null)<=0||image.getWidth(null)<=0)
return null;
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB );
Graphics g = bufferedImage.createGraphics();
g.drawImage(image,0,0,null);
g.dispose();
return(bufferedImage);
}
}
/****************************/
public void Connect(String critere)
{
try {
Socket digit = new Socket("www.amazon.fr", 80);
digit.setSoTimeout(20000);
OutputStream out=digit.getOutputStream();
String ligne=null;
out = digit.getOutputStream();
int imagetrouvee=0;
String req ="field-keywords=" + Nettoye(critere) + "&url=index%3Dblended%26rank%3D%252Bamzrank&search-type=quick-search&Go.x=0&Go.y=0&Go=Go"; //HTTP/1.1";
String header="POST http://www.amazon.fr/exec/obidos/search-handle-form/171-3920384-6113039 HTTP/1.1\n";
header+="Connection: close\n";
header+="Host: www.amazon.fr\n";
header+="Content-Type: application/x-www-form-urlencoded\n";
header+="Content-Length: " + req.length() + "\n\n";
header+= req + "HTTP/1.1 200 OK\n";
header+="Server: Apache\n";
out.write(header.getBytes());
out.flush();
BufferedReader in = new BufferedReader(new InputStreamReader(digit.getInputStream()));
boolean eof = false;
while(!eof)
{
String line=in.readLine();
if(line!=null)
{
int a=line.indexOf("http://images-eu.amazon.com/images/P/");
if(a>0)
{
String url= line.substring(a, line.indexOf('"', a)).replaceAll("THUMBZZZ.jpg", "LZZZZZZZ.jpg");
for(int i=0; i<15; i++)
{
line=in.readLine();
if(line.equals("<td class=" + '"' + "small" + '"' + " align=" + '"' + "left" + '"' +">"))
{
if(imagetrouvee==0)
{
URL url2 = new URL(url);
image = ImageIO.read(url2);
label.setText("");
label.setIcon(new ImageIcon(reduit(image)));
next.setEnabled(true);
}
adresses.add(new String(url));
urls.append(url +"\n");
imagetrouvee++;
}
}
}
}
else
eof=true;
}
digit.close();
}
catch (IOException ex)
{
System.out.println("Erreur ES:"+ ex.getMessage());
}
}
/*********************************************************/
public String Nettoye(String str)
{
str=str.replace('?','@');
str=str.replaceAll("@", "%3f");
str=str.replaceAll(",", "");
str=str.replace(' ', '+');
str=str.toLowerCase();
str=str.replaceAll("'", "%27");
return str;
}
/*********************************************************/
public static void main (String[] args)
{
PictureDownload wc = new PictureDownload() ;
}
}
Conclusion
C'est une fonction que je comptais ajouter au shareware dont je ne vais pas vous en faire la pub ici car c'est un site Opensource, elle aurait servi à écrire l'image dans le tag PIC d'un mp3. J'espère qu'elle serivra à qqun. Postez vos commentaires.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
lien avec INTERNET EXPLORER et image sur bouton (URGENT) [ par othland ]
slt tlm1)je avoir la fonction suivate (si elle existe!!!!):quand je clique sur un bouton, une fentre de INTERNET EXPLORER s'affiche!2)peut on mettre u
Upload d'image [ par moonflower ]
Bonjour ! Je programme un forum entièrement en Java en utilisant le framework Struts (jsp et servlets). Je voudrais que lors de l'inscription, l
comment convertir sequence image JPEG(30fps) en MJPEG [ par sicakmustafa ]
Bonjour,Actuellement, dans le cadre de mes etudes, j ai besoin de convertir en temps reel des images JPEG (30 images par secondes) en Motion JPEG.&nbs
Impression d'image [ par terminagroo ]
Bonjour,C'est peut-être une question stupide mais je me galère avec ça. Alors j'aimerais imprimer une photo à partir d'une applica
Bouton sur une image [ par p0232 ]
Bonjour, je dois réaliser, en java, une barre de menu qui a une forme un peu spéciale elle doit etre également colorée. Je voudrai
pb avec image de fond et positions des boutons!!! [ par othland ]
slt tlmje suis vraiment dans la merde!je veux avoir une fentre ayant comme fond une image plus des étiquettes, des boutons et des bouton radio: a
Image HTML et JEditorPane [ par Yenapa ]
Bonjour a toutes et a tousJe cherche un moyen d'inserer une image dans une page html affichée dans un JEditorPane, sans inserer une balise <IM
Urgent!!!! Connexion Internet [ par sellami_k ]
Bonjout tt le mondeje suis impeu dans la merdeIl faut j'arrive a tracer une courbe du mon debit sur le net en fonction de tempspour cela il fo ke j'en
Adresse IP de sa connexion Internet [ par Foub12 ]
Bonjour, j'ai trouvé le code JAVA suivant : « InetAddress Ip = InetAddress.getLocalHost(); &nb
son&image_questions [ par sydailly ]
Salut à tous. J'ai un projet à développe
|
Téléchargements
Logiciels à télécharger sur le même thème :
|