Решено Вставка картинки в определенном масштабе

Тема в разделе "Lotus - Программирование", создана пользователем vitte, 21 окт 2015.

  1. vitte

    vitte Well-Known Member

    Регистрация:
    17 ноя 2011
    Сообщения:
    55
    Симпатии:
    0
    Как можно в RT поле формы программно вставить картинку в определенном масштабе (например 50% от ширины и 50% от высоты оригинального размера jpg файла)?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    DXML рулит
    сохраняешь док как надо, экспортируешь и смотришь что изменилось
     
  3. vitte

    vitte Well-Known Member

    Регистрация:
    17 ноя 2011
    Сообщения:
    55
    Симпатии:
    0
    Т.е. менять только сохраненный документ? Применить свойства при вставке нельзя?
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    при вставке куда и чего?
     
  5. vitte

    vitte Well-Known Member

    Регистрация:
    17 ноя 2011
    Сообщения:
    55
    Симпатии:
    0
    При программной вставке jpg файла с картинкой в rt поле нового (или сохраненного) документа .
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    мы дрдр не понимаем...
    ну можно вставить картинку и что дальше?
    и показать можно, в чем вопрос?
    [DOUBLEPOST=1445421509,1445421396][/DOUBLEPOST]как должен выглядеть процесс и что в нем вызывает вопросы?
     
  7. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    кусок из java агента.....он забирает по url картинку, сохраняет на диск, уменьшает под определенный размер, сохраняет в документе в уменьшенном виде в виде импорта, а всю картинку в виде атача
    Код (Java):
    // изменить размер
    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();
     
    3 пользователям это понравилось.
  8. vitte

    vitte Well-Known Member

    Регистрация:
    17 ноя 2011
    Сообщения:
    55
    Симпатии:
    0
     
  9. erdi

    erdi Well-Known Member

    Регистрация:
    20 авг 2008
    Сообщения:
    261
    Симпатии:
    36
    в довесок...не увидел
    Код (Java):
    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;
        }
     
Загрузка...
Похожие Темы - Вставка картинки определенном
  1. Dragon108
    Ответов:
    1
    Просмотров:
    468
  2. k85
    Ответов:
    2
    Просмотров:
    679
  3. lionk
    Ответов:
    6
    Просмотров:
    756
  4. sasha465
    Ответов:
    2
    Просмотров:
    1.367
  5. MisterJohn
    Ответов:
    0
    Просмотров:
    1.413

Поделиться этой страницей