阅读更多
Java Art系列是Killer Game Programming in Java一书的扩展章节,介绍了很多利用java框架来实现各种有趣功能的思路和实现。
作者是泰国的Dr. Andrew Davison,这本书的在线浏览网址是 http://fivedots.coe.psu.ac.th/~ad/jg/index.html(搜索该页面里的Java Art就可以找到)
这本书我读下来的感受是,相当好!可作为java基础提高、或者是架构师拓宽思路的材料阅读。
各章内容简介如下:
Chapter 0.5. Automatic Wallpapering
这一章讲了如何自动更换Windows桌面的壁纸。
使用了 JNA调用DLL修改Windows注册表来修改壁纸。
Chapter 1. On-the-Fly Dynamic Compilation and Execution
这一章把一个java代码转为一张图片,然后用Java Compiler API来即时编译这个java代码,生成class代码。并加载运行。
另外还用了另一种方法 janino也可以编译java代码。
最后用 bcel来检查生成的class代码结构。
Chapter 2. Executing Pixels using Drag-and-Drop
这一章是上一章的延续,讲了如何将图片通过拖拽的方式运行。
尝试了3种方法:
one-jar可以将所有东东打包成一个jar包
脚本:bat以及VBScript,可以实现拖拽运行程序效果
launch4j可以将东东最终变为一个exe文件
Chapter 3. Tracing with JPDA
这章以及后面两章介绍了将java程序的执行变为可视化以及可听化。
讲了Java Platform Debugger Architecture (JPDA)来调试程序,作为后面两章的基础。
Chapter 4. Visualization with Whorld
这一章讲可视化。
JPDA监视方法的开始和结束,转换为MIDI消息发给 whorld,一个可视化程序。
loopbe1是一个虚拟声音驱动,用来连接whorld和我们的程序。
Chapter 5. Program Sonification
这一章讲可听化。
依然用JPDA,不过这次将代码通过 freetts朗读出来。
mbrola是一系列的各国语音支持,不过暂时没有中文支持。
Chapter 6. Steganography
隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。
这一章讲了如何将文字藏在一张图片中,用了4种方法,由浅入深。
其中用到 jasypt用来加密信息。
imagej是一个java写的图像处理工具。
Chapter 7. Video Watermarking with Barcodes
这一章讲如何给视频加上数字水印。隐藏式水印的重要应用之一是保护版权,期望能借此避免或阻止数字媒体未经授权的复制和拷贝。
xuggler用来修改视频
barcode4j把文字转为二维码,插入视频
zxing把二维码反转为文字,从而解析出信息
Chapter 8. A Compiler for Drawing Crop Circles
最后一章,大部头!自创了一个画麦田怪圈的语言。用JDK自带的StreamTokenizer做词法分析器,然后不用任何第三方库写了一个语法分析器。
最后用 batik生成SVG图像。
作者写书真是很有水平的,由浅入深、一步一步,没有编译原理基础的人也能轻松的读下来。