显示PGM格式图片的面板实现
来源:互联网 发布:潍坊市行知学校新址 编辑:程序博客网 时间:2024/05/05 22:44
PGM是一种简易的图片格式,仅仅通过描述各点的灰度值表示。为了简单,这里采用更简单的图片格式,即只存储各点灰度值。比如一个5*5的图片如下所示。
0 0 10 10 0 0
0 0 10 10 0 0
0 0 10 10 0 0
0 0 10 10 0 0
0 0 10 10 0 0
为了显示这样的图片,这里实现一种简易的面板,从文本中读取灰度值,然后显示。
具体代码如下所示。
import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.awt.image.WritableRaster;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;import javax.swing.JPanel;public class PgmPanel extends JPanel {public static final int WIDTH=512;public static final int HEIGHT=512;private int[][] pixels;public PgmPanel(String pgmFile) {super();pixels = new int[WIDTH][HEIGHT];try {Scanner scan=new Scanner(new File(pgmFile));int row=0;while(scan.hasNext()){String line=scan.nextLine();if(line==null)continue;int k=0;for(String p:line.split(" "))pixels[row][k++]=Integer.parseInt(p);++row;}scan.close();} catch (FileNotFoundException e) {e.printStackTrace();}}@Overridepublic Dimension getPreferredSize() {return new Dimension(WIDTH, HEIGHT);}@Overridepublic void paint(Graphics g) {super.paint(g);Graphics2D g2d=(Graphics2D) g;BufferedImage img=new BufferedImage(WIDTH,HEIGHT,BufferedImage.TYPE_BYTE_GRAY);WritableRaster raster=img.getRaster();for(int k=0;k<pixels.length;++k)for(int j=0;j<pixels[k].length;++j)raster.setPixel(j, k, new int[]{pixels[k][j]});g2d.drawImage(img, 0, 0, WIDTH, HEIGHT, null);}}
在构造函数中读取灰度值,在paint函数中绘图。这里使用BuffededImage类构建了一个图片,使用TYPE_BYTE_GRAY模式。然后用WritableRaster类对图片中的每个点设置灰度值。
面板实现后,加入一个JFrame中即可显示。
以一个图片为例,其文本如下所示。
0 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 100 120 140 160 180 200 220 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
面板显示效果如下所示。
0 0
- 显示PGM格式图片的面板实现
- 图片PGM格式转化为JPG格式(MATLAB 实现)
- python读取pgm格式图片文件
- 利用opencv把其它格式的图片转换为pgm格式代码
- PGM图片的一些知识
- matlab把图片pgm格式转换成png格式
- matlab把图片pgm格式转换成png格式
- 如何在matlab里编程实现bmp到pgm格式的转换
- 按照控制面板区域设置显示时间的格式函数
- 显示base64格式的图片
- Python 代码实现 JPG图片转PGM图片
- PGM格式图像详解
- PGM格式图像详解
- PGM格式图像详解
- PGM格式图像文件读写
- PGM格式图像详解
- PGM格式图像详解
- P5 PGM格式图像
- nginx源码分析
- android WebView加载 assets html文件
- “杀京东”京东价格监控软件项目开发日志一
- IO总结
- sysbench安装、使用、结果解读
- 显示PGM格式图片的面板实现
- spring4 hibernate4 freemaker
- 使用bartender打印RFID标签如何正确写入EPCID(intermec的RFID条码打印机)
- 黑马程序员_java基础_java概述
- Lowest Bit
- LeetCode 111:Minimum Depth of Binary Tree
- 写爬虫,只是为了下小说
- Java多线程总结(6)— 线程池的基本使用和执行流程分析
- Cosos 学习笔记——场景