在进行文件保护的时候,格式bmp只能在java的软件中运行,不能再xp系统上运行。为此我们要解决这个问题,首先要知道bmp格式是什么形式保存的,它是以颜色数组保存的。为此就要解决这个问题,在此我犯了一个简单的错误,代码如下:
package saveFile1120;
import java.awt.Component;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
public class Save4Bit {
// 用来保存每一个像素点颜色的数组
public int[][] ArrayPic;
private Robot robot;
public void file() {
try {
robot = new Robot();
} catch (Exception ef) {
ef.printStackTrace();
}
}
public void Array2Pinc(Component pc){
// 得到panel左上角的点相对于屏幕的坐标
ArrayPic = new int[pc.getPreferredSize().height][pc.getPreferredSize().width];
Rectangle rect = new Rectangle(pc.getLocationOnScreen().x, pc.getLocationOnScreen().y,
pc.getPreferredSize().width, pc.getPreferredSize().height);
// 从屏幕上抓取一张图片
BufferedImage img = robot.createScreenCapture(rect);
//System.out.println("ooo");
// 获取图像上所有点的颜色,存入数组
for (int i = 0; i < ArrayPic.length; i++) {
for (int j = 0; j < ArrayPic[i].length; j++) {
//数组行列分别与画板的y坐标和x坐标对应
ArrayPic[i][j] = img.getRGB(j, i);
// System.out.println(ArrayPic);
}
}
}
}
我在下面调用robot,而没有在下面不能调用file();而file()没有返回值。在public void Array2Pinc(Component pc)也没有调用这个方法。要把void file()改成Save4bit的构造方法。才能使用,不然会出现这样的错误,代码如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
在其中就不要使用泛类队列了,在Save4bit定义了数组,可以获得画布的大小的数组,每一幅画都是有一些像素构成的。而这些像素就相当数组的一个元素,定义数组为int,就可以统一了基本类型。
bmp就是在已选定的区域,引用的是import java.awt.Rectangle;创建对象new Rectangle。其关键作用的是定义的是import java.awt.Robot这个包。在引用import java.awt.Component这个包,它是所用的容器的父类,JPanel就可以使用它。
在遍历的时候应该注意height 和 width应该注意他的顺序,如果你把他搞反,除了一种情况,那就是在长宽一样大的时候。否则错误代码如下:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
at sun.awt.image.IntegerInterleavedRaster.getDataElements(IntegerInterleavedRaster.java:202)
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871)
at saveFile1120.Save4Bit.Array2Pinc(Save4Bit.java:31)
at saveFile1120.DrawListener.mouseReleased(DrawListener.java:45)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
可视经过换肤色,换成xp系统的肤色代码如下:
public class DrawUI extends javax.swing.JFrame {
ArrayList<NetJavaShape> shapes = new ArrayList<NetJavaShape>();
public static void main(String args[]) {
DrawUI kl = new DrawUI();
kl.initDrawUI();
try {
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName());
}
catch ( Exception e ) {
e.printStackTrace();
}
//将界面设置为当前windows风格
kl.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
可以经行两幅图片比较,如下:
- 大小: 17.2 KB
- 大小: 37.6 KB
分享到:
相关推荐
在本项目“bmp图片输入输出verilog仿真”中,我们将探讨如何使用Verilog来实现对.bmp图像文件的读取和显示,以及如何在ModelSim环境下进行仿真。 首先,了解.bmp图像文件格式至关重要。.bmp是位图图像文件格式,...
这个名为"NX1892图标48像素bmp格式"的资源,显然是UG NX软件中的图标,以BMP(Bitmap)图像格式提供,尺寸为48像素乘以48像素。 BMP是一种位图文件格式,它存储的是未经压缩的像素数据,因此图像质量高,但文件大小...
1. 编写读取.bmp文件的模块,解析其格式。 2. 设计颜色转换模块,根据RGB到YCrCb的公式进行计算。 3. 将读取的RGB值传递给颜色转换模块,得到YCrCb值。 4. 可选地,如果"img_gray"是目标输出,那么还需要一个模块来...
BMP(Bitmap)是一种常见的位图图像格式,广泛用于操作系统、应用程序和游戏中的图形表示。本文将深入探讨如何在编程环境中读取和显示BMP图像,主要关注C++或相关的编程语言,因为这是最常见的处理图像数据的方式。 ...
本教程将深入探讨如何在ModelSim环境中进行图像输入和输出的仿真工程,以bmp位图作为数据源,并最终将仿真结果转换回相同格式的位图。 首先,我们需要理解图像数据的表示。BMP(Bitmap)是一种常见的位图文件格式,...
本项目聚焦于“中值滤波图像处理”的Verilog硬件描述语言实现以及MATLAB软件仿真验证,旨在通过这两种不同的方法来验证算法的正确性和效率。 首先,我们来看Verilog编程实现。Verilog是一种用于数字电路设计的硬件...
1. **图像输入**:平台需要能够读取图像文件,例如常见的BMP格式。BMP是一种无损的位图格式,包含图像的每个像素的颜色信息。我们需要设计电路来解析BMP文件的头信息,并将像素数据加载到FPGA内部的数据存储器中。 ...
5. 图像处理的基本概念,如位图图像(.bmp格式)和信号的傅立叶变换。 掌握这些知识点对于理解和处理实际中的噪声问题至关重要,无论是为了提高图像传感器的性能,优化通信系统的抗干扰能力,还是提升图像处理算法...
这个技术结合了光学、计算机科学以及图像处理,而MATLAB作为一种强大的数值计算和图形处理环境,是实现数字全息仿真的理想工具。在这个实验中,我们将探讨以下几个关键知识点: 1. **数字全息实验原理**:数字全息...
这涉及到导入BMP格式的底图、按比例缩放、调整图片位置以及利用软件工具创建和编辑路网结构。 总之,VISSIM作为一个强大的交通仿真工具,通过精细的模型和丰富的功能,能够对复杂的交通问题进行深入研究,为交通...
标题中的“BMP生成PCB格式软件”指的是一个能够将位图图像(BMP格式)转换为用于印刷电路板(PCB)设计的软件工具。在电子设计自动化领域,这样的功能通常是为了将公司logo、警示图标或其他图形元素导入到PCB布局中...
3. **BMP180传感器应用**:熟悉BMP180的datasheet,了解其工作原理、数据格式、命令集和校准步骤。正确配置传感器的工作模式,获取压力和温度原始数据。 4. **气压与海拔高度转换**:学习大气压强与海拔高度的关系...
图像文件如`World-Night.bmp`, `World-Winter.bmp`, `big.bmp`, `World-Standard-HiRes.bmp`, `biga.jpg`可能用来展示地球的不同视图,比如昼夜分布、季节变化或高分辨率地图,这些在可视化卫星轨道时非常有用。...
BMP280的数据手册提供了I2C通信协议的详细信息,包括寄存器地址和数据格式。在Keil中,我们可以使用HAL库中的I2C函数读写传感器的寄存器,获取温度和气压数据。这通常涉及到初始化I2C外设,发送开始条件,写入地址,...
Matlab支持多种文件格式,如.wav音频文件、.bmp图像文件等。 接下来,我们深入到信号的分析部分。傅立叶变换是信号处理中的核心工具,它将时域信号转换到频域,揭示信号的频率成分。Matlab提供了fft函数来实现快速...
12. **文件格式支持**:程序可能支持多种图像格式导入,如BMP、PNG、JPEG等,以便在LCD上显示图片。 通过LCD显示仿真程序,开发者可以有效地减少硬件开发中的迭代次数,提高工作效率,同时为初学者提供了一个安全的...
- 使用`Options→Background→Open`导入BMP格式的地图文件。 - 使用`Options→Background→Scale`按照比例缩放地图。 - 使用`Options→Background→Orgin`手动拖拉调整背景图的位置。 - 通过`Options→...
4. **图片格式处理**:可能涉及将常见的图片格式(如BMP、JPEG或PNG)转换为适合12864 LCD显示的格式。 5. **内存管理**:在资源有限的嵌入式系统中,如何有效地存储和加载图片数据。 6. **仿真技术**:如何使用...
使用`Options->Background->Open`导入BMP格式的图像,然后通过`Options->Background->Scale`进行比例缩放,`Options->Background->Orgin`进行位置调整。保存图片信息参数(*.hgr文件)以备后用。 - **建立路网**:...
具体来说,可以使用Options菜单下的Background子菜单导入BMP格式的平面设计图,并通过Scale和Origin选项进行比例缩放和位置调整。为避免重复工作,用户可以保存图片信息参数为.hgr文件。 接着,Vissim中的路网由...