Post

Java Application per ridimensionamento immagine in proporzione

DOMANDA: Come posso ridimensionare un'immagine rispettando le sue proporzioni? RISPOSTA: Di seguito una breve guida per creare una piccola Java Application che visualizza un'immagine ridimensionata rispettando le sue proporzioni.  L'applicazione inoltre salva l'immagine su disco attraverso il metodo saveImage() . Il codice utilizza il metodo getScaledDimension()  riportato su StackOverflow . import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.WindowConstants; public class ImageResizeProportionally { public static void main(String[] args) { String path_immagine = "C:\\mia_immagine.jpg"; BufferedImage srcImage; try {

Problemi sendRedirect con reverse proxy?

DOMANDA: Come posso evitare l'utilizzo di sendRedirect quando questa istruzione crea problemi in un ambiente con reverse proxy? RISPOSTA: Si può sostituire l'istruzione response.sendRedirect(url_path) impostando gli header della response HTTP . Gli header da impostare sono: Location Status Code il codice da utilizzare è il 302 - Moved Temporarily Vediamo come: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SomeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY); response.setHeader("Location", "/mia_pagina.jsp"); } }

Creare PDF da un XML con Apache FOP 1.1

DOMANDA: Come si crea un PDF da un file XML? RISPOSTA: E' possibile creare un PDF a partire da un XML con Apache FOP 1.1 , ultima versione attualmente disponibile. E' indispensabile sapere che per la trasformazione è necessario un file "intermedio" .xsl utilizzato come template (modello) in cui vengono conservate le informazioni di impaginazione. Come al solito, guardiamo con degli esempi ad hoc  ogni singolo step anche se, in questo post, si da per scontata una conoscenza basilare di xml ed xsl . La seguente classe Xml2Pdf trasforma l' XML in PDF grazie alle informazioni contenute nel .xsl : package fop; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.sax.SAXResu

Differenza tra JRE e JDK

DOMANDA: Che differenza c'è tra Java Runtime Environment (JRE) e Java Development Kit (JDK)? RISPOSTA: Se la vostra esigenza è quella di eseguire delle applicazioni Java , è sufficiente la JRE . Infatti Java Runtime Enviroment è un'implementazione della Java Virtual Machine (JVM) necessaria per far girare i programmi Java sul vostro calcolatore. E' quindi necessaria la JRE per eseguire ad esempio Eclipse , le applet , Tomcat , ecc... La JDK invece è indispensabile nel caso voi abbiate la necessità di sviluppare software Java. Infatti la JDK contiene al suo interno una o più JRE e  tutti gli applicativi utili per la programmazione in Java: debuggers, compilatori come javac, librerie per lo sviluppo, ecc... Sono entrambe gratuite e scaricabili dal sito ufficiale  Oracle Java . NOTA : per Eclipse è sufficiente la JRE perché al suo interno contiene già il compilatore, le librerie e i tools necessari al programmatore.

Codifica e decodifica di un'immagine in Base64

DOMANDA: Come si effettua la codifica in Base64 di un'immagine in Java? RISPOSTA: Differentemente da quanto visto per la codifica Base64 delle stringhe , per le immagini abbiamo alcune varianti dovute soprattutto alla conversione della stessa in un array di byte . Scarichiamo la classe Base64 di Apache Commons contenuta nel pacchetto  commons-codec-1.2.jar . Il codice nell'esempio mostra come convertire in Base64  un'immagine JPG, ma è adattabile anche ad altri formati: package base64; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.apache.commons.codec.binary.Base64; public class Base64ImgConversion { public static void main(String[] args) throws IOException { BufferedImage immagine = ImageIO.read(new File("C:\\immagine.jpg")); ByteArrayOutputStream byteArrOS = new ByteArrayOutputStream(); ImageIO.write(imm

Codifica e decodifica di una stringa in Base64

DOMANDA: Come si converte una stringa in Base64 con Java? RISPOSTA: In Java esiste una classe chiamata Base64 della libreria Apache Commons che permette in pochi passi di convertire una stringa in Base64 . Scarichiamo quindi il pacchetto   commons-codec-1.2.jar   ed importiamolo nel nostro progetto. Una volta effettuate correttamente queste operazioni, guardiamo l'esempio che effettua codifica e decodifica : package base64; import org.apache.commons.codec.binary.Base64; public class Base64Conversion { public static void main(String[] args) { String daConvertire = "Stringa originale"; // CODIFICA BASE64 byte[] encoded = Base64.encodeBase64(daConvertire.getBytes()); System.out.println("Stringa da convertire: " + daConvertire ); System.out.println("Base64: " + new String(encoded)); // DECODIFICA BASE64 byte[] decoded = Base64.decodeBase64(encoded); System.out.println("Stringa decodificata : " + new St

Comprimere e convertire immagini in JPG

DOMANDA: Come convertire un'immagine in JPG in Java? RISPOSTA: Java  mette a disposizione diversi oggetti che permettono la conversione di un'immagine in JPG/JPEG e anche la regolazione della compressione (e quindi della qualità). Guardiamo l'esempio TestCompressione , opportunamente commentato per capire tutti i passaggi da intraprendere: package immagini; import java.awt.image.*; import java.io.*; import java.util.Iterator; import javax.imageio.*; import javax.imageio.stream.FileImageOutputStream; import javax.swing.JFileChooser; public class TestCompressione { public static void main(String args[]) throws Exception { BufferedImage immagine = null; // Seleziono il file con finestra di dialogo JFileChooser fileScelto = new JFileChooser("C:\\"); int selezione = fileScelto.showDialog(null, "Seleziona il file da aprire"); if(selezione == JFileChooser.APPROVE_OPTION) immagine = ImageIO.read(fileScelto.getSelectedFile(