探讨如何保护Java应用程序图像资源
2008-05-22 01:22
721 查看
google_ad_client = "pub-8800625213955058";
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
张大志 (zdzwsz@cmmail.com)
2001 年 12 月
《Java应用程序内嵌图像资源的方法探讨》(李鲁群
(liluqun@263.net))山东科技大学计算中心)一文中写道:“在Java应用程序中,可以动态地调用显示图像文件(如:*.gif,*.jpg),不过令人感到美中不足的是,直接使用Java应用程序调用的图像资源,都必须以文件的形式存放在硬盘或网络上的,当应用程序分发给用户后,用户可以轻而易举地使用各种图像编辑软件,将与程序对应的图像文件资源篡改的面目皆非。试想,如果这些图像文件是重要的版权标志,那么后果肯定是应用程序开发者不希望看到的。因此,有必要采用一些措施将这些图像文件保护起来。”文中作者使用了图像构造方法:
只需要将图像文件转换成Java源程序的一个字节数组类型的常量,嵌入源程序,然后直接构造出img对象即可实现源程序中内嵌图像资源以达到保护图象文件。
这不失为一种好的、可行的方法。我在此想说的是另一种方法。使用java.swing.ImageIcon类。ImageIcon类是一个可序列化的类。我们可使用,ObjectInputStream,ObjectOutputStream类。将图象文件用writeObject(Object
obj)方法保存为一文件以达到保护图象文件。
主要程序代码:
然后,再用readObject()方法造型为ImageIcon。
主要程序代码:
再用其他对象的方法显示图像即可。如:
另外,你还可以用类似的方法给你的图象文件使用zip类进行文件压缩。可使文件更具有保密性。
主要程序代码:
解压代码:
如果在一应用程序中,有多个重要图象文件,可以使用ImageIcon数组或者 java.util.List类,再使用上面的方法。当然也可以一个一个地保存为*.img文件。再反序列化还原。
/* 336x280, 创建于 07-11-21 */
google_ad_slot = "0989131976";
google_ad_width = 336;
google_ad_height = 280;
//
张大志 (zdzwsz@cmmail.com)
2001 年 12 月
《Java应用程序内嵌图像资源的方法探讨》(李鲁群
(liluqun@263.net))山东科技大学计算中心)一文中写道:“在Java应用程序中,可以动态地调用显示图像文件(如:*.gif,*.jpg),不过令人感到美中不足的是,直接使用Java应用程序调用的图像资源,都必须以文件的形式存放在硬盘或网络上的,当应用程序分发给用户后,用户可以轻而易举地使用各种图像编辑软件,将与程序对应的图像文件资源篡改的面目皆非。试想,如果这些图像文件是重要的版权标志,那么后果肯定是应用程序开发者不希望看到的。因此,有必要采用一些措施将这些图像文件保护起来。”文中作者使用了图像构造方法:
Image img=Toolkit.getDefaultToolkit().createImage(byte[] map);
只需要将图像文件转换成Java源程序的一个字节数组类型的常量,嵌入源程序,然后直接构造出img对象即可实现源程序中内嵌图像资源以达到保护图象文件。
这不失为一种好的、可行的方法。我在此想说的是另一种方法。使用java.swing.ImageIcon类。ImageIcon类是一个可序列化的类。我们可使用,ObjectInputStream,ObjectOutputStream类。将图象文件用writeObject(Object
obj)方法保存为一文件以达到保护图象文件。
主要程序代码:
ImageIcon icon = new ImageIcon("copy.jpg"); ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("image.img")); out.writeObject(icon); |
主要程序代码:
ObjectInputStream out=new ObjectInputStream(new FileInputStream("image.img")); icon=(ImageIcon)out.readObject(); |
public void paint(Graphics g){ g.drawImage(icon.getImage(),0,0,350,263,this); }
另外,你还可以用类似的方法给你的图象文件使用zip类进行文件压缩。可使文件更具有保密性。
主要程序代码:
ImageIcon icon = new ImageIcon("copy.jpg"); ObjectOutputStream out=new ObjectOutputStream(new GZIPOutputStream(new FileOutputStream("image.img"))); out.writeObject(icon); |
ObjectInputStream in=new ObjectInputStream(new GZIPInputStream(new FileInputStream("image.img"))); icon=(ImageIcon)out.readObject();
如果在一应用程序中,有多个重要图象文件,可以使用ImageIcon数组或者 java.util.List类,再使用上面的方法。当然也可以一个一个地保存为*.img文件。再反序列化还原。
关于作者 张大志,男,从事网页设计,网络程序开发。现在珠海一公司工作。我很喜欢java,研究JAVA程序设计有几年的时间,通过了SUN公司的SCJP认证,一直关注着java的发展。我的email:zdzwsz@cmmail.com 欢迎大家和我多多交流。 |
相关文章推荐
- 探讨如何保护Java应用程序图像资源
- 如何在Java应用程序中动态分配CPU资源
- 如何在Java应用程序中动态分配CPU资源
- 如何在Java应用程序中实现copy图像功能。
- 如何去保护(防止)自己的Java应用程序源码(JAR, SERVLET, CLASS, APPLET)不被其他人逆向工程?
- 如何在Java应用程序中实现copy图像功能
- java如何实现在系统资源管理器中选中指定文件/文件夹?
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
- 如何使用 Visual Studio 2005 将应用程序及其资源打包到一个 CAB 文件中
- 编写多线程的Java应用程序-如何避免当前编程中最常见的问题
- 【iOS开发-52】如果要模仿练习,如何找到其他应用程序的icon、使用框架等资源?
- 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
- 如何快速的发展出吻合Java 2 platform Enterprise Edition的应用程序
- java WEB应用程序启动时是如何加载AXIS server-config.wsdd 的
- 高手教你如何处理Java图像的技巧四则
- 关于应用程序出现窗口不完整,GDI对象猛增,GDI资源泄漏的问题的探讨
- 用gulp打包带参数资源做法与asp.net/java项目结合的自动构建方案探讨
- 在Java应用程序中创建图像
- 如何保护Java代码
- 在Android应用程序中Java和JavaScript如何交互?