Manipulando imagens no código java

Estou desenvolvendo um site onde gostaria de disponibilizar para o usuário uma função de editar imagens, onde o usuário pode:

  • Ver suas imagens em thumbnail
  • Converter a imagem colorida para preto e branco (sépia talvez, se não for complidado demais)
  • Fazer cortes (Tipo Crop)
  • Adicionar uma borda branca a imagem.
  • Aumentar e retirar brilho.

E gostaria de saber se alguem tem uma sugestão para me ajudar.

o JAI faz tudo o que vc quer:
http://java.sun.com/products/java-media/jai/

Aham, você tem duas alternativas:

  • Você pode ter um applet que faz tudo isso.
    Vantagem:
  1. Velocidade só depende da máquina client
  2. Ele pode editar fotos à vontade.
    Desvantagem:
  • Você deve requerer o uso de uma versão da JRE que tenha os recursos desejados, como a última versão da 1.4.2. (Se estiver numa intranet acho que não é tão problemático assim)

  • Acho que você tem de instalar no seu client também a JAI, se não me engano, se você tiver de usar alguma JRE mais antiga. (tipo 1.4.1)

  • Você pode fazer isso no servidor (servlet)
    Vantagem:

  • Você só precisa instalar o JAI no servidor.
    Desvantagens (são muitas):

  1. Você vai deixar seu usuário de cabelos brancos esperando o upload e download da imagem
  2. Você não consegue ter um recurso de preview
  3. Você vai atolar o seu servidor processando imagens
  4. Se o servidor for Unix não sei se o JAI funciona direito se você não estiver com o servidor X rodando (no caso do Swing você tinha de iniciar o Java com -Djava.awt.headless=true, mas não sei no caso do JAI)

Talvez isso ajude:

http://jimagetaglib.sourceforge.net/

tem várias das funções que vc precisa e é um projeto brasileiro.

[quote=ciczan]Talvez isso ajude:

http://jimagetaglib.sourceforge.net/

tem várias das funções que vc precisa e é um projeto brasileiro.[/quote]

nossa, muito legal! esse é realmente prático… O JAI tem muito mais coisas, mas esse é fantásticamente simples!

[quote=http://jimagetaglib.sourceforge.net/jit-taglib.tld.html]
Use this tag inside an image tag to show only a part of the image, beside the following rule for creating a “rectangle” area: - “x” parameter is the initial x image’s position; - “y” parameter is the initial y image’s position; - “width” parameter is the width from x,y; - “height” parameter is the height from x,y. Take care: if you set parameters that results in a rectangle that goes out of image’s frontiers, the image will not be rendered.
Body Content: empty [/quote]

Isso é muito util!!!
Valeu mesmo cara…