1) El applet
2) colocar el applet en la pagina
3) crear la funcion javascript que recibirá como parametro la imagen en formato String.
1) Bueno entonces.... el archivo java lo vamos a llamar Main.java y contendrá:
import java.applet.*;
import java.awt.*;
import netscape.javascript.JSObject;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
import javax.xml.bind.*;
public class Main extends Applet{
public void init () {
System.out.println("Good Morning2");
String reconstitutedString = "";
String text = "Hello";
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
Font font = new Font("Arial", Font.PLAIN, 48);
g2d.setFont(font);
FontMetrics fm = g2d.getFontMetrics();
int width = fm.stringWidth(text);
int height = fm.getHeight();
g2d.dispose();
img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
g2d = img.createGraphics();
g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g2d.setFont(font);
fm = g2d.getFontMetrics();
g2d.setColor(Color.BLACK);
g2d.drawString(text, 0, fm.getAscent());
g2d.dispose();
//convertir a array de bytes
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
ImageIO.write(img, "png", baos);
} catch (IOException e) {
System.out.println(e);
e.printStackTrace();
}
String imageString = "data:image/png;base64," + DatatypeConverter.printBase64Binary(baos.toByteArray());
JSObject window = JSObject.getWindow(this);
window.call("alerta", new Object[] {imageString});
}
public void paint(Graphics g){
g.drawString("Welcome in Java Applet66.",40,20);
}
}
1.1) Para compilar el archivo java ejecutamos la linea en cmd:
javac Main.java -classpath C:\VSTEAM\Development\TitanMultiClient\WebSites\TitanWebClient\Impersonation\java-plugin-1.6.0.23.jar
No quiero ir al detalle de como compilar un java y eso, pero no sobra decir que se necesita un jar especial para que funcione esto.... ese jar hay que meterlo en la carpeta LIB de donde esta instalado nuestro java.
Una vez colocado en LIB, hay si se podrá compilar correctamente.
<applet CODE="Main.class" WIDTH="300" HEIGHT="300">
</applet>
Y también agregar el código de la imagen que se va a colocar:
<img id="imageTest" src=""
width="50" height="50" alt="embedded folder icon">
3) colocar lo siguiente en la página web en la sección scripts.
<script src="jQuery.js" type="text/javascript"></script>
<script>
function alerta(parametro) {
alert('aaa' + parametro);
$('#imageTest').attr('src', parametro);
}
</script>
Ojo que se necesita jquery en este ejemplo, para asignar el valor src a la imagen, aunque se puede hacer con javascript.
Espero les sirva este pequeño manual.
Sean felices! :) Y siéntanse libres de opinar ;)
No hay comentarios:
Publicar un comentario