Lec_06
.pdfИзображения. Пример загрузки и отрисовки изображения
import java.io.*; import java.awt.image.*; import javax.imageio.*; import java.awt.*; import javax.swing.*;
public class ImageDrawer extends JApplet { BufferedImage image = null;
public void init() { try {
image = ImageIO.read(new File("mypicture.jpg")); } catch (IOException e) { e.printStackTrace(); }
}
public void paint(Graphics g) { g.drawImage(image, 0, 0, null);
}
}
Изображения. Рисование на изображении
//Создание изображения с помощью конструкторов BufferedImage new BufferedImage(width, height, type)
BufferedImage.TYPE_...
//Создание изображения с помощью методов Component Component.createImage(width, height)
//Рисование на изображении
…
BufferedImage image =
new BufferedImage(640, 480, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = image.createGraphics();
g2.fillRect(0, 0, 100, 100);
…
Изображения. Сохранение в файл
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
formatName: JPG, PNG, GIF, BMP, WBMP (Стандартные "plug-in" модули из Image I/O API)
// Запись и сохранение изображения в файл try {
BufferedImage image = createMyImage();
File outputfile = new File("mySavedImage.png"); ImageIO.write(image, "png", outputfile);
} catch (IOException e) { ... }
/* Доступные для записи форматы графических изображений в данной среде исполнения */
for (String writerFormatName: ImageIO.getWriterFormatNames()) System.out.println(writerFormatName);
Печать. Hello World!
import java.awt.*; import java.awt.print.*; public class PrintingDemo implements Printable {
public int print(Graphics g, PageFormat pf, int page) throws PrinterException { if (page > 0) { return NO_SUCH_PAGE; }
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY()); // (0,0) -- > (ImageableX, ImageableY) g.drawString("Hello world!", 100, 100);
return PAGE_EXISTS;
}
public static void main(String[] args) { PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(new PrintingDemo()); boolean ok = job.printDialog();
if (ok) {
try { job.print(); }
catch (PrinterException ex) { … }
}
}
}
Ресурсы по лекции
•Java Tutorials. Trail: 2D Graphics http://docs.oracle.com/javase/tutorial/2d