V
vitte
Как можно в RT поле формы программно вставить картинку в определенном масштабе (например 50% от ширины и 50% от высоты оригинального размера jpg файла)?
при вставке куда и чего?Применить свойства при вставке нельзя?
при вставке куда и чего?
// изменить размер
File oldpic = new File(filepatch);
img = ImageIO.read(oldpic);
double aspectRatio = (double) img.getWidth(null)/(double) img.getHeight(null);
tempJPG = resizeImage(img, 164, (int) (173/aspectRatio));
filepatch_new=filepatch+".jpg";
newFileJPG = new File(filepatch_new);
ImageIO.write(tempJPG, "jpg", newFileJPG);
String filepatch_new_old=filepatch+"_old.jpg";
File newFileOldJPG = new File(filepatch_new_old);
ImageIO.write(ImageIO.read(oldpic), "jpg", newFileOldJPG);
// MIME mini
Stream stream = ses.createStream();
// Do not convert MIME to rich text
ses.setConvertMIME(false);
if (docR.hasItem("Body")){
docR.removeItem("Body");
}
MIMEEntity body = docR.createMIMEEntity();
if (stream.open(newFileJPG.getPath(), "binary")) {
if (stream.getBytes() != 0) {
body.setContentFromBytes(stream, "image/jpeg", MIMEEntity.ENC_IDENTITY_BINARY);
}
else System.out.println(newFileJPG.getPath());
}
else System.out.println("Error opening "+newFileJPG.getPath());
stream.close();
// Restore conversion
ses.setConvertMIME(true);
// приатачить full photo
if (docR.hasItem("bodyfull")){
docR.removeItem("bodyfull");
}
RichTextItem bodyfull = docR.createRichTextItem("bodyfull");
bodyfull.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, newFileOldJPG.getPath(), newFileOldJPG.getName());
docR.save(true, true);
body.recycle();
bodyfull.recycle();
docR.recycle();
кусок из java агента.....он забирает по url картинку, сохраняет на диск, уменьшает под определенный размер, сохраняет в документе в уменьшенном виде в виде импорта, а всю картинку в виде атача
/QUOTE]
Да, скорее всего так и сделаю. Спасибо.
public static BufferedImage resizeImage(final Image image, int width, int height) {
final BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
final Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.setComposite(AlphaComposite.Src);
//below three lines are for RenderingHints for better image quality at cost of higher processing time
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
return bufferedImage;
}
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab