PHP + VRaptor3 no mesmo projeto é possível?

Olá pessoal,

Não me xinguem, mas estou com essa questão, tenho um projeto que preciso fazer resize de imagens (criar thumbnails e tal) mas até agora eu estou levando a maior surra para fazer isto em java, então eu vi que em PHP tem uma qualidade muito boa para fazer isto, eu estou usando VRaptor 3, então minha questão é: é possível eu deixar um arquivo PHP no meu projeto VRaptor para quando eu precisar tratar uma imagem eu só chamo ele, ou tenho de criar outra app para hospedar só o arquivo php?
Outra questão é se eu estiver errado quanto a qualidade de tratamento de imagem em java e burrice minha por favor alguem poderia me ajudar com algum exemplo funcional ?

Obrigado por enquanto!!

Att.
Leonardo Lima

outra app para o arquivo php…

e ter um servidor que leia o php… nao vai servir um servidor java (como o tomcat) por ex

Quanto a fazer o resize das imagens em java… dá pra fazer… tá faltando só vc dar uma pesquisada :smiley:

primeiro hit do google:

http://www.componenthouse.com/article-20

talvez tenha uma biblioteca que faça isso de um jeito mais fácil…

Se não me engano já é possível rodar PHP no glassfish.

Mas você está falando da libgd, certo? No Java temos uma API assim muito poderosa também, o JAI. http://java.sun.com/javase/technologies/desktop/media/

Eu tinha um projeto antigo que fiz, vou procurar nos meus fontes de projetos antigos para ver se acho alguma coisa. Lembro que eu fiz efeitos de crop, rotate, resize, inverse colors e outros efeitos de forma bem simples.

opa garcia…
tu achou alguma coisa ai???

Estou precisando muito mesmo de um resize em java… a idéia de usar a gdlib é por ser mais rapido mesmo (para implementar) eu andei lendo sobre a JAI mto interessante, mas muito complicado tbm né rsrs

Pergunta para o Lucas :wink:

Esse link que vc indicou… vou testar ele rsrs mas… como faço para retornar um BufferedImage direto no VRaptor 3 rsrss

Obrigado :oops:

Att.
Leonardo Lima

Opa…

Consegui fazer!!! rsrs

    @Path("/galeria/imagem/{idEvento}/{idGaleria}")
    public InputStream mostraImagem(String idEvento, String idGaleria) throws IOException {
        String realPath = requestInfo.getServletContext().getRealPath("/uploads/galerias/" + idEvento + "/" + idGaleria);

        BufferedImage img = ImageIO.read(new File(realPath));
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        ImageIO.write(ComponentHouseResizer.resize(img, 160, 120), "jpg", byteArrayOutputStream);
        byte[] bytes = byteArrayOutputStream.toByteArray();
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
        return bais;
    }

Mas para ser sincero… a qualidade da imagem que foi gerada é horrivel rsrs
meu deus viu… rsrs se eu não achar nda melhor em Java vou ter de apelar e usar o PHP msmo rsrs GDLib ganha de goleada (pelo menos para quem não sabe usar a JAI né rsrs)

Vou aguardar o garcia, se ele postar algo para salvar minha pele né :wink:

Valeu pessoal :wink:

qdo vc faz um resize, geralmente vc precisa passar o algoritmo de suavisar o resize… não tem algo do tipo no ComponentHouseResizer?

Eu vi que tem 2 métodos de resize… um era amarrado com uma dimensão e não consegui entender ele direito por conta do sono rsrs
Hoje vou testar ele, trocando os parametros para o tamanho que eu quero a img…
Mas tbm se o Garcia achar o código dele vai ajudar bem rsrs

Eu vi umas coisas de JAI, mas pelo amor de deus… rsrs é igual matar uma mosca com um canhão kkkk

Pior que eu não tenho mais os códigos. Normalmente não guardo fonte de projetos antigos para favorecer a evolução :smiley:

Mas se você procurar no google você irá encontrar alguma coisa logo nos primeiros hits. Uma busca por “jai image resize” vai te retornar muita coisa boa. A classe que eu tinha feito tinha poucas linhas úteis de código. O resto eram métodos em redundancia que faziam ajustes para manter o ratio das imagens, calcular o melhor ponto de crop, etc.

Relaxa, no inicio parece dificil mas você vai ver depois que é bem fácil e divertido usar o JAI.

Desculpem o flood.

Aqui o download do JAI: https://jai.dev.java.net/binary-builds.html

Para fazer um resize com qualidade use o RenderingHints.

rsrs então até consegui fazer os resizes, rsrs o problema é esse miolo de métodos redundantes para fazer crops rss
mas vamos lá to caminhando rsrs
vlw mestres !