bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder > JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder > JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" <lam-no-spamm-thanks@nospam.org> wrote in message
news:87ll17yodd.fsf@no-log.org...
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder > JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" writes:Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" <pgilquin@bluewinAvirer.ch> writes:
Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" <lam-no-spamm-thanks@nospam.org> wrote in message
news:87ll17yodd.fsf@no-log.org...
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" writes:Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" writes:Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" <pgilquin@bluewinAvirer.ch> writes:
Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" <lam-no-spamm-thanks@nospam.org> wrote in message
news:87ll17yodd.fsf@no-log.org...
bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam
merci
mais en fait je peux recevoir des gifs, png, jpeg ... ou tout autre
types d'images
"Pierre Gilquin" writes:Voila une methode qui redimensionne une image pour qu'elle ne fasse plus que
maxDim selon l'age des x(je crois)
elle utilise le codec jpeg qui est quand meme fourni
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import autres ...
public static byte[] createThumbnail(byte[] orig, int maxDim) {
byte[] toReturn = null;
// public void createThumbnail(String origFile, String targetFile, int
maxDim) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
System.out.println("Resizing data in orig with maxDim of: " +
maxDim);
try {
Image inImage = Toolkit.getDefaultToolkit().createImage(orig);
MediaTracker mediaTracker = new MediaTracker(new JPanel());
mediaTracker.addImage(inImage, 0);
try
{
mediaTracker.waitForID(0);
}
catch (InterruptedException ie)
{
System.err.println(ie);
System.exit(1);
}
// Determine the scale.
double scale = (double)maxDim/(double)inImage.getHeight(null);
if (inImage.getWidth(null) > inImage.getHeight(null)) {
scale = (double)maxDim/(double)inImage.getWidth(null);
}
// Determine size of new image.
//One of them
// should equal maxDim.
int scaledW = (int)(scale*inImage.getWidth(null));
int scaledH = (int)(scale*inImage.getHeight(null));
System.out.println("Scaled size: " + scaledW + " x " +scaledH);
// Create an image buffer in
//which to paint on.
BufferedImage outImage = new
BufferedImage(scaledW,scaledH,BufferedImage.TYPE_INT_RGB);
System.out.println("New image: " + outImage.getWidth(null)
+ " x " + outImage.getHeight(null));
// Set the scale.
AffineTransform tx = new AffineTransform();
// If the image is smaller than
//the desired image size,
// don't bother scaling.
System.out.println("Our scale: " + scale);
if (scale < 1.0d) {
tx.scale(scale, scale);
}
// Paint image.
Graphics2D g2d = outImage.createGraphics();
g2d.drawImage(inImage, tx, null);
g2d.dispose();
// JPEG-encode the image
//and write to file.
//OutputStream os = new FileOutputStream(thumb);
JPEGImageEncoder encoder >>JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
/*
FileOutputStream fos = new FileOutputStream(targetFile);
fos.write(outputStream.toByteArray());
*/
toReturn = outputStream.toByteArray();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return toReturn;
}
"Lam" wrote in message
news:bonjour j'ai un pb avec la manipulation d'images
je cree un ImageIcon a partir d'un byte[]
je peux ensuite redimensionner cette image.
J'aimerais ensuite retourner le nouveau byte[] correspondant a cette
image.
je ne vois pas comment faire
qq'un a une idee ?
merci
--
Lam