pessoal alguem sabe onde tem algo sobre cortar imagem com java? achei só com php e outros. Alguem sabe algum que usa com jquery ou prototype ou scriptaculous?
A classe BufferedImage tem vários métodos para recotar imagem:
- Você pode usar o método draw() para desenhar um pedaço da imagem em outra imagem;
- Você pode usar o método getSubImage, para obter uma imagem.
foi de grande importancia sua resposta. Deu para me dar um norte até que eu achei uma biblioteca chamada JIU para maniulação de imagens! Muito boa mesmo da para redimencionar, cortar, aplicar filtros etc… Como orientação usei um tópico de uma pessoa que sabe usar ela. O cara é daqui do forum mesmo “rrigoni” se quiserem de uma olhada.
disculpa levantar esse tópico denovo na minha maquina com windows xp funcionou direitinho mas quando coloco no linux da erro de X11 display. Servidor é linux umbutu sem ambiente visual. uso glassfish v2 lá no servidor. Alguem tem alguma solução?
Corte de imagens erro X11 no linux? coloquei um parametro pela inteface web do glassfish fui em configurations tanto no default-config quanto no server-config tem a opção da JVM Settings e nela coloquei um new JVM Options que seria -Djava.awt.headless=true
mas mesmo asssim ta dando erro. Mas agora é outro veja
java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java
Complete Message
at java.awt.Window.(Window.java:414) at java.awt.Frame.(Frame.java:403) at java.awt.Frame.(Frame.java:368) at net.sourceforge.jiu.gui.awt.ToolkitLoader.load(ToolkitLoader.java:88) at net.sourceforge.jiu.gui.awt.ToolkitLoader.loadAsRgb24Image(ToolkitLoader.java:114)
estou usando esse codigo para cortar
if (x1 > 0) {//cortar a imagem
PixelImage originalImage = ToolkitLoader.loadAsRgb24Image(path + "/" + foto);
Resample resample = new Resample();
resample.setFilter(Resample.FILTER_TYPE_LANCZOS3);
Crop crop = new Crop();
crop.setInputImage(originalImage);
crop.setBounds(x1, y1, x2, y2);
crop.process();
PixelImage cropedImage = crop.getOutputImage();
resample.setInputImage(cropedImage);
resample.setSize(160, 180);
resample.process();
BufferedImage averageImage = ImageCreator.convertToAwtBufferedImage(resample.getOutputImage());
ImageIO.write(averageImage, "jpg", new File(path + "/" + foto));
}
imports
import java.awt.image.BufferedImage;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.imageio.ImageIO;
import net.sourceforge.jiu.data.PixelImage;
import net.sourceforge.jiu.geometry.Crop;
import net.sourceforge.jiu.geometry.Resample;
import net.sourceforge.jiu.gui.awt.ImageCreator;
import net.sourceforge.jiu.gui.awt.ToolkitLoader;
import net.sourceforge.jiu.ops.MissingParameterException;
import net.sourceforge.jiu.ops.WrongParameterException;
import org.directwebremoting.WebContextFactory;
esta funcionando o upload e redimencionamento da imagem como esse código
Image img = null;
img = javax.imageio.ImageIO.read(uploadedFile);
int width = img.getWidth(null);
int height = img.getHeight(null);
if (height > 420 && width <= 800) {//ajustar a altura
Resample resample = new Resample();
PixelImage originalImage = ToolkitLoader.loadAsRgb24Image(path);
resample.setInputImage(originalImage);
resample.setFilter(Resample.FILTER_TYPE_LANCZOS3);
resample.setSize(width,420);
resample.process();
BufferedImage averageImage = ImageCreator.convertToAwtBufferedImage(resample.getOutputImage());
ImageIO.write(averageImage, "jpg", new File(path));
o codigo acima funciona la no servidor mas somente se eu cortar a imagem ai ele entra naquele bloco de codigo de corte ai da erro la no servidor
esse cara esta igual a mim
http://sourceforge.net/projects/jiu/forums/forum/51534/topic/1954989?message=4808559
resolvi não usando mais essa biblioteca JIU pois concerteza dentro dela deve estar usando swing em seus metodos ai que vem o erro quando no linux não tiver ambiente gráfico instalado.
Daí então procurei utilizar recursos das classes que já está no java e lógico não usando nada do swing e dando preferencia para as classes java do pacote AWT e deu certo vale a pena usar. e funciona perfeitamente em servidores sem ambientes gráficos