J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg.
Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage {
public CreateImage(String texte) {
try
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage =
new BufferedImage(100,
30,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = outImage.createGraphics();
g.setBackground(Color.white);
g.clearRect(0,0,100,30);
g.setColor(Color.red);
g.drawString(texte, 5, 20);
g.scale(20.0d,50.0d);
g.rotate(Math.toRadians(-90));
/* marche pas non plus !
AffineTransform tx = new AffineTransform();
tx.rotate(Math.toRadians(-90));
g.setTransform(tx);
*/
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TestMan
Bonjour,
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg. Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage { public CreateImage(String texte) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage > new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB); Graphics2D g = outImage.createGraphics(); g.setBackground(Color.white); g.clearRect(0,0,100,30); g.setColor(Color.red); g.drawString(texte, 5, 20); g.scale(20.0d,50.0d); g.rotate(Math.toRadians(-90)); /* marche pas non plus ! AffineTransform tx = new AffineTransform(); tx.rotate(Math.toRadians(-90)); g.setTransform(tx); */ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream); encoder.encode(outImage);
} public static void main(String[] args) { CreateImage createImage1 = new CreateImage("Mon texte bidon"); }
}
Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas tourner ce qui a déjà été "écrit" dans le pipeline graphique de Java2D (voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg"); ImageIO.write(outImage,"jpeg",fos);
Bon code...
A+ TM
Bonjour,
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg.
Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage {
public CreateImage(String texte) {
try
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage > new BufferedImage(100,
30,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = outImage.createGraphics();
g.setBackground(Color.white);
g.clearRect(0,0,100,30);
g.setColor(Color.red);
g.drawString(texte, 5, 20);
g.scale(20.0d,50.0d);
g.rotate(Math.toRadians(-90));
/* marche pas non plus !
AffineTransform tx = new AffineTransform();
tx.rotate(Math.toRadians(-90));
g.setTransform(tx);
*/
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
}
public static void main(String[] args) {
CreateImage createImage1 = new CreateImage("Mon texte bidon");
}
}
Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas
tourner ce qui a déjà été "écrit" dans le pipeline graphique de Java2D
(voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si
vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg");
ImageIO.write(outImage,"jpeg",fos);
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg. Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage { public CreateImage(String texte) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage > new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB); Graphics2D g = outImage.createGraphics(); g.setBackground(Color.white); g.clearRect(0,0,100,30); g.setColor(Color.red); g.drawString(texte, 5, 20); g.scale(20.0d,50.0d); g.rotate(Math.toRadians(-90)); /* marche pas non plus ! AffineTransform tx = new AffineTransform(); tx.rotate(Math.toRadians(-90)); g.setTransform(tx); */ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream); encoder.encode(outImage);
} public static void main(String[] args) { CreateImage createImage1 = new CreateImage("Mon texte bidon"); }
}
Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas tourner ce qui a déjà été "écrit" dans le pipeline graphique de Java2D (voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg"); ImageIO.write(outImage,"jpeg",fos);
Bon code...
A+ TM
1 connu
Merci TestMan pour les tuyaux.
J'ai essayé de mettre le rotate au debut comme cela :
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
"TestMan" a écrit dans le message de news: 45228bb7$0$1485$
Bonjour,
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg. Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage { public CreateImage(String texte) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage >> new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB); Graphics2D g = outImage.createGraphics(); g.setBackground(Color.white); g.clearRect(0,0,100,30); g.setColor(Color.red); g.drawString(texte, 5, 20); g.scale(20.0d,50.0d); g.rotate(Math.toRadians(-90)); /* marche pas non plus ! AffineTransform tx = new AffineTransform(); tx.rotate(Math.toRadians(-90)); g.setTransform(tx); */ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream); encoder.encode(outImage);
} public static void main(String[] args) { CreateImage createImage1 = new CreateImage("Mon texte bidon"); }
} Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas tourner ce qui a déjà été "écrit" dans le pipeline graphique de Java2D (voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg"); ImageIO.write(outImage,"jpeg",fos);
Bon code...
A+ TM
Merci TestMan pour les tuyaux.
J'ai essayé de mettre le rotate au debut comme cela :
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
"TestMan" <none@example.com> a écrit dans le message de news: 45228bb7$0$1485$426a34cc@news.free.fr...
Bonjour,
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg.
Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage {
public CreateImage(String texte) {
try
{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage >> new BufferedImage(100,
30,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = outImage.createGraphics();
g.setBackground(Color.white);
g.clearRect(0,0,100,30);
g.setColor(Color.red);
g.drawString(texte, 5, 20);
g.scale(20.0d,50.0d);
g.rotate(Math.toRadians(-90));
/* marche pas non plus !
AffineTransform tx = new AffineTransform();
tx.rotate(Math.toRadians(-90));
g.setTransform(tx);
*/
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream);
encoder.encode(outImage);
}
public static void main(String[] args) {
CreateImage createImage1 = new CreateImage("Mon texte bidon");
}
}
Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas tourner ce qui a déjà été "écrit" dans le pipeline
graphique de Java2D (voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg");
ImageIO.write(outImage,"jpeg",fos);
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
"TestMan" a écrit dans le message de news: 45228bb7$0$1485$
Bonjour,
J'ai fait un petit programme qui permet d'ecrire un texte, faire une rotation et en recuperer l'image dans un jpeg. Maheureusement impossible de lui faire faire la rotation. Tout le reste marche.
Merci pour votre aide.
Pierre
public class CreateImage { public CreateImage(String texte) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
BufferedImage outImage >> new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB); Graphics2D g = outImage.createGraphics(); g.setBackground(Color.white); g.clearRect(0,0,100,30); g.setColor(Color.red); g.drawString(texte, 5, 20); g.scale(20.0d,50.0d); g.rotate(Math.toRadians(-90)); /* marche pas non plus ! AffineTransform tx = new AffineTransform(); tx.rotate(Math.toRadians(-90)); g.setTransform(tx); */ JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outputStream); encoder.encode(outImage);
} public static void main(String[] args) { CreateImage createImage1 = new CreateImage("Mon texte bidon"); }
} Bonjour,
Le .rotate modifie la matrice de transformation courante, il ne fait pas tourner ce qui a déjà été "écrit" dans le pipeline graphique de Java2D (voir la doc de Graphics2D). Essayez de mettre le .rorate au début ...
Pensez à positioner un RenderingHints pour l'interpolation à bilinear si vous souhaitez un rendu amélioré.
Enfin, essayez également d'utiliser ImageIO qui serra plus générique :
File file = new File("essai.jpeg"); ImageIO.write(outImage,"jpeg",fos);
Bon code...
A+ TM
TestMan
Merci TestMan pour les tuyaux.
J'ai essayé de mettre le rotate au debut comme cela :
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
Bonjour,
Tout le problème déside dans ce que fait le .rotate ... il tourne autour de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0 d'un text affiché en 5,20 provoque l'affichage en dehors de l'image !
D'où le fait que vous ne voyez pas votre texte :) Idem pour vos zones de "clear" et autre directives ... ainsi, il ne reste que la couleur par défaut du modele RGB à savoir 000000, qui est du noir, CQFD :)
Je vous propose de tester avec le code :
public static void main(String[] args) throws Exception{
BufferedImage image = new BufferedImage(30, 100, BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); g.setTransform(AffineTransform.getRotateInstance(Math.toRadians(-90),50.d,50.d)); g.setBackground(Color.WHITE); g.clearRect(0,0,100,30); g.setColor(Color.RED); g.drawString("test 123", 5, 20); g.scale(20.0d,50.0d);
ImageIO.write(image,"jpeg",args[0]);
}
Vous pouvez en plus remplacer "jpeg" par "png" et TYPE_INT_RGB par TYPE_INT_ARGB et supprimer le clear et la couleur de fond pour obtenir un effet de transparence alpha automatique...
Java2D n'a que peu de limites ;-)
A+ TM
Merci TestMan pour les tuyaux.
J'ai essayé de mettre le rotate au debut comme cela :
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
Bonjour,
Tout le problème déside dans ce que fait le .rotate ... il tourne autour
de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0
d'un text affiché en 5,20 provoque l'affichage en dehors de l'image !
D'où le fait que vous ne voyez pas votre texte :)
Idem pour vos zones de "clear" et autre directives ... ainsi, il ne
reste que la couleur par défaut du modele RGB à savoir 000000, qui est
du noir, CQFD :)
Je vous propose de tester avec le code :
public static void main(String[] args) throws Exception{
BufferedImage image = new BufferedImage(30, 100,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setTransform(AffineTransform.getRotateInstance(Math.toRadians(-90),50.d,50.d));
g.setBackground(Color.WHITE);
g.clearRect(0,0,100,30);
g.setColor(Color.RED);
g.drawString("test 123", 5, 20);
g.scale(20.0d,50.0d);
ImageIO.write(image,"jpeg",args[0]);
}
Vous pouvez en plus remplacer "jpeg" par "png" et TYPE_INT_RGB par
TYPE_INT_ARGB et supprimer le clear et la couleur de fond pour obtenir
un effet de transparence alpha automatique...
mais c'est pire, j'ai une image completement noire et non tournée !
Je piges rien ....
Pierre
Bonjour,
Tout le problème déside dans ce que fait le .rotate ... il tourne autour de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0 d'un text affiché en 5,20 provoque l'affichage en dehors de l'image !
D'où le fait que vous ne voyez pas votre texte :) Idem pour vos zones de "clear" et autre directives ... ainsi, il ne reste que la couleur par défaut du modele RGB à savoir 000000, qui est du noir, CQFD :)
Je vous propose de tester avec le code :
public static void main(String[] args) throws Exception{
BufferedImage image = new BufferedImage(30, 100, BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); g.setTransform(AffineTransform.getRotateInstance(Math.toRadians(-90),50.d,50.d)); g.setBackground(Color.WHITE); g.clearRect(0,0,100,30); g.setColor(Color.RED); g.drawString("test 123", 5, 20); g.scale(20.0d,50.0d);
ImageIO.write(image,"jpeg",args[0]);
}
Vous pouvez en plus remplacer "jpeg" par "png" et TYPE_INT_RGB par TYPE_INT_ARGB et supprimer le clear et la couleur de fond pour obtenir un effet de transparence alpha automatique...
Java2D n'a que peu de limites ;-)
A+ TM
1 connu
Tout le problème déside dans ce que fait le .rotate ... il tourne autour de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0 d'un text affiché en 5,20 provoque l'affichage en dehors de l'image !
Damned, J'ai pas vu ca ! Merci beaucoup, c'est super !
Pierre
Tout le problème déside dans ce que fait le .rotate ... il tourne autour
de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0 d'un text affiché en 5,20 provoque l'affichage en dehors de
l'image !
Damned, J'ai pas vu ca !
Merci beaucoup, c'est super !
Tout le problème déside dans ce que fait le .rotate ... il tourne autour de 0,0 comme coordonnées, or faire une rotation de -90° autour de 0,0 d'un text affiché en 5,20 provoque l'affichage en dehors de l'image !
Damned, J'ai pas vu ca ! Merci beaucoup, c'est super !