Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Прямоугольная область из Java формы


Автор: GallOn 5.5.2005, 06:36
Загружаю в форму 2 одинаковых по размеру изображения, накладываю полупрозрачно их друг на друга, немного изменив цвета.

Как мне сохранить полученное изображение в файл.
Я вообще только начинаю работать с java и не совсем понимаю все эти особенности работы с графикой. Наверное, тут надо как-то словить высоту и ширину картинок и сохранить такую прямоугольную область в jpg.

Как загрузить это изображение в IIOImage?

Автор: Domestic Cat 5.5.2005, 07:11
http://www.rgagnon.com/javadetails/java-0266.html


Автор: Zandr 6.5.2005, 08:16
Че-то я гланул там пару статей.... В первой (про jpg) в одном из вариантов предлагают использовать недокументированные классы. Во второй статье (как сделать beep в Java) в одном из вариантов предлагают печатать в System.out символ bell. Дальше читать не стал, а то, блин, насоветуют умельцы...

Автор: unkis 9.5.2005, 14:27
Код

import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.awt.geom.*;
import com.sun.image.codec.jpeg.*;
import java.io.*;


/* A simple demonstration how to store an image in JPEG format.
   Note that the package com.sun.image.codec.jpeg.* is needed.
*/
public class ImageSavingExample extends Frame
{


  private BufferedImage theImage;




  public ImageSavingExample()
  {
    addWindowListener(new MyFinishWindow());

    //initialise the (buffered) image
    theImage = new BufferedImage(200,300,BufferedImage.TYPE_INT_RGB);

    //get its Graphics2D object
    Graphics2D g2dImage = theImage.createGraphics();

    //paint something on the buffered image
    clearWindow(g2dImage);
    g2dImage.setPaint(Color.blue);
    g2dImage.draw(new Rectangle2D.Double(10,10,150,250));
    g2dImage.setPaint(Color.green);
    g2dImage.drawString("Test",30,230);



    try
    {
      //create a file output stream
      FileOutputStream fos = new FileOutputStream("test.jpg");
      //create an JPEGImageEncoder using the output stream
      JPEGImageEncoder jie = JPEGCodec.createJPEGEncoder(fos);
      //let the JPEGImageEncoder write the image to the file/output stream
      jie.encode(theImage);
    }
    catch (Exception e)
    {
      System.out.println(e);
    }

  }



  //This not necessary. It is just to show that the stored image is the
  //same one is the stored one.
  public void paint(Graphics g)
  {

    Graphics2D g2d = (Graphics2D) g;

    g2d.drawImage(theImage,50,50,null);

  }



  public static void clearWindow(Graphics2D g)
  {
    g.setPaint(Color.white);
    g.fill(new Rectangle(0,0,600,600));
    g.setPaint(Color.black);
  }


}


Код

import java.awt.*;
import java.awt.event.*;


   class MyFinishWindow extends WindowAdapter
   {  public void windowClosing(WindowEvent e)
      {  System.exit(0);  }
   }


Держи надеюс помогежет

Автор: Zandr 11.5.2005, 06:57
Цитата
Держи надеюс помогежет

Еще один "умелец".
Черным по белому написано, чтобы не лезли в com.sun.*. Sun не дает никаких гарантий на то что классы оттуда останутся неизменными или вообще останутся. Документацию по ним не дает именно по этому. Нет, бл@ть, нада туда залезть, поюзать и еще ньюбам насоветовать!

Автор: Domestic Cat 11.5.2005, 07:08
Цитата(Zandr @ 10.5.2005, 21:57)
Sun не дает никаких гарантий на то что классы оттуда останутся неизменными или вообще останутся.


Да ну? Это классы, которые распространяются Сан в бандле с СДК; Сан не дает гарантиий по поводу не-Сановских вариантов Java, но насчет ее JDK/JRE волноваться не стоит.

Автор: Guest 12.5.2005, 12:16
Цитата(Zandr @ 11.5.2005, 06:57)
Еще один "умелец".
Черным по белому написано, чтобы не лезли в com.sun.*. Sun не дает никаких гарантий на то что классы оттуда останутся неизменными или вообще останутся. Документацию по ним не дает именно по этому. Нет, бл@ть, нада туда залезть, поюзать и еще ньюбам насоветовать!


ти меня извени конечно, но что-то я в вопросе GallOn не вижу где написанно
Цитата

чтобы не лезли в com.sun.*.

Автор: AntonSaburov 12.5.2005, 13:55
Zandr
Поспокойнее, сударь smile
Я понимаю, что иногда хочется выразиться, но все-таки полегче.

Автор: Zandr 16.5.2005, 08:29
Извините, ребята.
unkis, отдельное сорри.
Domestic Cat, да, про jpeg кодек вроде как так и есть, про остальное не помню - давно читал, но осадок остался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)