Lecture / Ecriture d'une JPG par Applet

Thibaut -  
 cyril -
Bonjour,

Voilà mon problème.
Je souhaite faire une applet qui ouvre une image jpg, qui l'enregistre en jpg, à 90%, dans un répertoire temporaire.

Plutot que de tout faire sous forme d'Applet, j'ai fait une partie en HTML

Ainsi le fichier image est récupéré par un formulaire HTML.

On obtient alors dans la zone de texte le chemin complet de l'image.

On le passe en paramètre dans l'applet par {my.callJavascript(document.image.userfile.value);}

Ca, ça fonctionne. (j'ai vérifié)

Ce qui ne marche pas, c'est que l'applet n'arrive pas à lire le fichier image source.
Voici l'erreur qu'elle donne :

java.security.AccessControlException access denied (java.io.FilePermission c:\jpgIcon.jpg read)


Avec ça, je suis bien moi.

Pouvez-vous m'aider, c'est assez urgent.

Si vous avez un autre moyen pour lire une image en local, l'enregistrer en local, le tout par une page internet, en jpg, avec une qualité de 90%.
La contrainte imposée, c'est qu'il faut que le traitement se fasse en local pour que ça soit rapide à éxécuter.

Merci de vos réponses.



Voici le code des 2 fichiers :

------------------------------------------------------------
FICHIER index.html
------------------------------------------------------------

<body>



<applet code="opti_initial.class" name="my" width="1000" height="50"></applet>
<FORM name="image" enctype="multipart/form-data" action="" method="POST">
Fichier Image :
<INPUT name="userfile" size="100" type="file" onChange="javascript:visualiser();">
<P>
<input type=button value="Valider" onclick="if (my) {my.callJavascript(document.image.userfile.value);}">

</FORM>

</body>



------------------------------------------------------------------
FICHIER opti_initial.java
------------------------------------------------------------------


import java.applet.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

// Graphics and Image Classes
import java.awt.image.BufferedImage;
import java.io.*;
import java.io.File;
import com.sun.image.codec.jpeg.*;


public class opti_initial extends Applet
{
StringBuffer buffer;
Graphics graph=null;

//Initialisation de l'applet
public void init()
{

buffer = new StringBuffer();
buffer.append("Ici l'Applet :");
repaint();
}

public void paint(Graphics g)
{
g.drawString(buffer.toString(),20,25);
graph=g;
}

public void callJavascript(String g) throws Exception
{
try{
File infile = new File("c://jpgIcon.jpg");

BufferedImage im = ImageIO.read(infile);
File outfile = new File("c://Windows//Temp//image.jpg");

ImageIO.write(im, "jpg", outfile);
}
catch (Exception e)
{

buffer = new StringBuffer();
buffer.append("erreur " + e.toString());
repaint();
}
}
}
A voir également:

3 réponses

teebo Messages postés 33570 Statut Modérateur 1 793
 
Oh, un zomonyme bavard qui plus est...Tu galeres pas trop pour pas qu'on l'ecrives avec un L???Moi j'en avait marre quand j'etais en france...Desole pour ton truc, j'ai pas le temps de regarder et en plus, ch'suis pas pro des trucs www...


Teebo...
"Le Sage à des questions, l'idiot des réponses..."
0
Thibaut
 
Bah si je galère avec les L de Thibaut.

Ils nous emm..de.

A +
0
Peguinette Messages postés 176 Statut Membre 30
 
Si je me trompe pas, une applet ne peut communiquer qu'avec le serveur d'où elle a ete downloadée.
Ce qui signifie sans doute, que tu ne peux pas ouvrir l'image que tu vois sur la page html mais que tu dois appeller directement le fichier qui se trouve sur le serveur.

Voila pourquoi il te dit accessDenied.

PS : je ne suis pas sure à 100% de ca plutot à 70%.

---------
Peguinette
0
Thibaut
 
Bah c'est ce que je suis en train de me dire.

D'après moi, impossible d'écrire une image sur le disque dur local.

Mais pourquoi on n'aurait pas le droit de lire tout simplement une image du disque dur local, puis de l'afficher dans une page HTML.

Merci pour ces infos.

En fait je suis confronté à faire des recherches la dessus, et je me rend compte qu'il existe des fonctions de protection en Java, mais qui ne serait pas portable pour les applets.
En plus, avec une application Java, on peut écrire et lire comme on veut à priori, mais pas avec une Applet.

Résumé : bah je suis dans la m....

Merci pour ces infos.

Je crois que ton pourcentage de certitude peut passer de 70% à 90% maintenant.
0
Peguinette Messages postés 176 Statut Membre 30 > Thibaut
 
>D'après moi, impossible d'écrire une image sur le disque dur local.
Ca c'est certain et encore heureux !!

>Mais pourquoi on n'aurait pas le droit de lire tout simplement une >image du disque dur local, puis de l'afficher dans une page HTML.
Tout simplement par ce que tu ne sais pas forcément si le client aura cette image sur son disque. Et qu'il est interdit de bidouiller sur le disque du client.


---------
Peguinette
0
Thibaut > Peguinette Messages postés 176 Statut Membre
 
Je sais que l'image du client existe, puisque je voulais lui demandais avant de chercher l'image par le biais d'une fenetre parcourir.

Brin, je ne sais plus quoi faire.
0
cyril
 
Bien sur qu'on peut, méthode : faire un jar et le signet ! c'est tout et ca marche !
0