1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema ao gravar imagem no Disco

Pessoal,

Estou buscando algumas imagem em um servidor externo e salvando essas imagens no meu servidor. É um sistema de imobiliária. Quando mando rodar a minha rotina de salvar as imagens no disco, esta ocorrendo 2 problemas.

1º As vezes ele não puxa a quantidade de imagem total, por exemplo se tiver 15 imagens no imóvel A ele trás somente 2 fotos, as demais o sistema diz que carregou, mas na verdade não. Isso não gera nenhum erro no log.

2º As vezes ele traz as imagens, mas quando peço para abrir no visualizador do Windows não mostra a imagem.

O que pode ser? Alguém já teve algum problema com carregamento de imagens?

Abaixo o código que estou usando.

Classe Principal

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Principal {

    public static void main(String[] args) {
        try {
            Principal principal = new Principal();
            List<Imagem> listaDeImagens = principal.gerarListaDeImagensMock();
            principal.buscarFotos(listaDeImagens);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void buscarFotos(List<Imagem> listaDeImagens) {
        try {
            ThreadPoolExecutor service = new ThreadPoolExecutor(50, 80, 5000, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>());
            for (Imagem imagem : listaDeImagens) {
                service.execute(new ProcessaImagem(imagem));
            }
            service.shutdown();
            while (!service.isTerminated()) {
                service.awaitTermination(10000, TimeUnit.MILLISECONDS);
            }
        } catch (Exception e) {
        }
    }

    private List<Imagem> gerarListaDeImagensMock() {
        try {
            List<Imagem> lista = new ArrayList<Imagem>();

            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim2-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%202.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim3-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%203.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim4-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%204.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim5-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%205.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim6-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%206.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim7-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%207.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim8-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%208.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim9-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%209.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim10-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2010.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim11-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2011.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim12-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2012.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim13-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2013.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim14-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2014.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\coberturacidadejardim15-001.jpg", "http://177.43.102.51/I%2019557/Cobertura%20Cidade%20Jardim%2015.JPG-001.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\cobertura04qtoscidadejardim2.jpg", "http://177.43.102.51/I%2019557/cobertura04%20qtos%20Cidade%20Jardim%202.JPG.jpg"));
            lista.add(new Imagem("c:\\atualizador\\imagens\\anuardonato\\i19557\\cobertura04qtoscidadejardim1.jpg", "http://177.43.102.51/I%2019557/cobertura%2004%20qtos%20Cidade%20Jardim%201.JPG.jpg"));
            return lista;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }
}

Classe Imagem

public class Imagem {

    private String urlExterna;
    private String diretorioInterno;

    public Imagem(String diretorioInterno,String urlExterna) {
        this.urlExterna = urlExterna;
        this.diretorioInterno = diretorioInterno;
    }

    public String getUrlExterna() {
        return urlExterna;
    }

    public void setUrlExterna(String urlExterna) {
        this.urlExterna = urlExterna;
    }

    public String getDiretorioInterno() {
        return diretorioInterno;
    }

    public void setDiretorioInterno(String diretorioInterno) {
        this.diretorioInterno = diretorioInterno;
    }

}

Classe ProcessaImagem

import java.awt.image.BufferedImage;
import java.io.File;
import java.net.URL;
import javax.imageio.ImageIO;

public class ProcessaImagem implements Runnable {

    private final Imagem imagem;

    public ProcessaImagem(Imagem imagem) {
        this.imagem = imagem;
    }

    private void salvarImagemNoDisco() {
        try {
            URL url = new URL(imagem.getUrlExterna());
            BufferedImage img = ImageIO.read(url);
            String extensao = ".jpg";
            File diretorio = new File(imagem.getDiretorioInterno());
            ImageIO.write(img, extensao, diretorio);
            System.out.println("IMAGEM GRAVADA NO DISCO");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void run() {
        try {
            salvarImagemNoDisco();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java threads imagens ou faça a sua própria pergunta.