Busca lo que quieras

Pasar imagenes de java applet a javascript

Los pasos son.

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.

2) En la página debe de estar el siguiente código html:

 <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

Palabras Clave

.NET (93) AJAX (2) ajaxcontroltoolkit (2) Algoritmos (1) android (1) Angular (1) Arrays (1) AS2 o ActionScript 2.0 (1) AS3 o ActionScript 3.0 (64) ASP (7) ASP.NET (3) Azure (1) Azure DevOps (2) Backup (2) Batch (4) blogger (1) Browser Support (2) C# (53) Charts (1) Chorme extensions (1) Chrome (3) cmd (18) código postal (1) Colombia tips (1) command (1) Conexion remota (1) Controles Web .NET (24) Cookies (1) cordova (1) CSS (14) CSV (5) Cufon (1) DateTime (2) deployment (2) Desarrollo movil (2) Desarrollo web (5) Diseño (4) DNN o DotNetNuke (5) docker (1) Encuestas (1) Entity Framework (1) Error (1) Eval (2) Excel (4) Expresiones regulares (2) Facebook (14) fechas (1) Fiddler (1) FileUpload (1) Filezilla (1) Firefox (2) Flash (9) Fonts (3) FQL (1) frameworks (2) Futuro de la web (1) git (1) Google Code (13) Google Maps (4) hackintosh (3) hazard 10.6.2 (3) herramientas para developers (1) highchart (1) Hilos (2) Hosting Windows (18) HTML (38) HTML5 (6) IDE (1) IE (2) IE9 (1) IIS (13) imagenes (3) jasmine (2) java (1) jqgrid (2) Jquery y Javascript (90) jquery-ui (5) jQueryMobile (1) JSON (1) knockout (4) library (1) Link Interesantes (2) List (1) Macro (2) Matemáticas (2) Membership (6) Memoria (1) Mis Experiencias (3) momentjs (1) ms-dos (1) MSN (1) MVC (1) MVC4 (3) MySQL (2) node.js (4) Notepad++ (3) Notificaciones (1) ObjectDataSource (2) Online (2) Opinión (4) OSX (3) Parallels Plesk Panel (1) petapoco (1) PhantomJS (1) PHP (4) Porqué este blog (1) Powershell (1) Razor (3) Redes (2) REGEX (4) REST (1) SDK Android (1) Seguridad (1) SelectParameters (1) Selenium (2) sencha (3) sencha cmd (2) SEO (1) SMTP (2) Software útil (8) Solución (1) Soporte (1) SQL (15) SQL Server (58) SQLite (2) Store Procedures (20) String (5) Testing Code (2) texto (2) tips de datos (1) tips de desarrollo (1) TutoFaceAS3 (4) TutoProAS3 (4) Tutoriales (7) Tweenlite effects (3) Últimas noticias (1) unit testing (1) usb (1) VBA (1) Video (1) virus (1) Web API (2) Web Browsers (1) Web Forms (7) web.config (1) Webmaster (8) Webmatrix (1) webrole (1) webservices (1) webstorm (1) Win Forms (5) Windows (21) Windows 7 (1) Windows 8 (1) XML (2) Youtube API (2)