Pessoal,
Boa tarde
Eu não estou sabendo redimensionar imagens.
Já estou gravando a imagem mas agora preciso redimensiona-la, vi algo sobre o assunto mas nada que eu fiz deu certo. Alguem pode me ajudar?
Não encontrei tutorial nenhum de como redimensionar imagens na net. Vi só um monte de código que não esta funcionando qndo adequo ele ao meu codigo mas nada de algo explicativo. Pra falar a verdade nem sei onde colocar o redimensionamento no meu codigo abaixo:
package control;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import model.ConexaoMysql;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class ServletUpload extends HttpServlet{
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
public ConexaoMysql conexaoMysql;
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/* PrintWriter out = response.getWriter();
out.println("ESSE É O ID: " + id);
out.println("ESSE É O NUMFOTO: " + numFoto);
out.flush();
out.close();*/
boolean isMultiPart = FileUpload.isMultipartContent(request);
if (isMultiPart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String formulario = "";
String id = "";
String numFoto = "";
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
for (Object o : items){
//System.out.println(o.toString());
FileItem fi = ( FileItem ) o;
if (fi.getFieldName().equals("tipoForm")) {
formulario = fi.getString();
}
if (fi.getFieldName().equals("id")) {
id = fi.getString();
}
if (fi.getFieldName().equals("numFoto")) {
numFoto = fi.getString();
}
}
if (!item.isFormField()) {
if (item.getName().length() > 0) { //item.getName() - é o endereço do arquivo, endereço de origem.
this.inserirImagemDiretorio(item, id, numFoto);
}
}
}
} catch (FileUploadException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
// implementação de demais métodos do Servlet.
/**
*
* @param item FileItem, representa um arquivo que é enviado pelo formulario
* MultiPart/Form-data
* @throws IOException
*/
private void inserirImagemDiretorio(FileItem item, String id, String numFoto) throws
IOException {
conexaoMysql = new ConexaoMysql();
//Pega o diretório /logo dentro do diretório atual de onde a
//aplicação está rodando
String caminho = getServletContext().getRealPath("/logo")
+ "/";
// Cria o diretório caso ele não exista
File diretorio = new File(caminho);
if (!diretorio.exists()){
diretorio.mkdir();
}
// Mandar o arquivo para o diretório informado
String nome = item.getName();
String arq[] = nome.split("\\");
for (int i = 0; i < arq.length; i++) {
nome = arq[i]; //isso aqui é o nome do arquivo em si... o nome que ele pega do usuario.
}
// System.out.println("Esta é a variavel NOME: " + nome);
File file = new File(diretorio, nome);
FileOutputStream output = new FileOutputStream(file);
InputStream is = item.getInputStream();
byte[] buffer = new byte[2048];
int nLidos;
while ((nLidos = is.read(buffer)) >= 0) {
output.write(buffer, 0, nLidos);
}
output.flush();
output.close();
//Guarda no banco de dados o endereço para recuperação da imagem
Connection conexao = null;
/**
Estabeleça a conexão
*/
PreparedStatement pstmt = null;
// String sql = "INSERT INTO TabelaTeste2 (codigo, imagem) VALUES(?, ?)";
String sql = "update contratosimportantes set foto"+numFoto+" = ? where id = ?";
try {
pstmt = conexaoMysql.conexao.prepareStatement(sql);
//declaracao = conexao.prepareStatement(sql);
String novoCaminho = "logo/" + nome;
pstmt.setString(1, novoCaminho); // codigo 1
pstmt.setString(2, id);
//pstmt.setString(2, caminho);
pstmt.executeUpdate();
} catch (SQLException sqlEx) {
sqlEx.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}