﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小菜乐园-随笔分类-Java图形图像</title><link>http://www.blogjava.net/xiaocai/category/25037.html</link><description>生活就是一杯茶</description><language>zh-cn</language><lastBuildDate>Sat, 18 Aug 2007 04:35:37 GMT</lastBuildDate><pubDate>Sat, 18 Aug 2007 04:35:37 GMT</pubDate><ttl>60</ttl><item><title>使用 Java 进行图像处理 - 图像缩放 </title><link>http://www.blogjava.net/xiaocai/archive/2007/08/18/137771.html</link><dc:creator>小菜</dc:creator><author>小菜</author><pubDate>Sat, 18 Aug 2007 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/xiaocai/archive/2007/08/18/137771.html</guid><wfw:comment>http://www.blogjava.net/xiaocai/comments/137771.html</wfw:comment><comments>http://www.blogjava.net/xiaocai/archive/2007/08/18/137771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaocai/comments/commentRss/137771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaocai/services/trackbacks/137771.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:   * 图像缩放 - 参数指定目标图缩放比例。<br>     * @param srcImage 源图像对象。<br>     * @param xscale 图像 x 轴（宽度）上的的缩放比例。<br>     * @param yscale 图像 y 轴（高度）上的的缩放比例。<br>     * @param hints 重新绘图使用的 RenderingHints 对象。<br>     * @return 缩放后的图像对象&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaocai/archive/2007/08/18/137771.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaocai/aggbug/137771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaocai/" target="_blank">小菜</a> 2007-08-18 10:20 <a href="http://www.blogjava.net/xiaocai/archive/2007/08/18/137771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Swing处理图片缩放和拖动</title><link>http://www.blogjava.net/xiaocai/archive/2007/08/17/137686.html</link><dc:creator>小菜</dc:creator><author>小菜</author><pubDate>Fri, 17 Aug 2007 12:19:00 GMT</pubDate><guid>http://www.blogjava.net/xiaocai/archive/2007/08/17/137686.html</guid><wfw:comment>http://www.blogjava.net/xiaocai/comments/137686.html</wfw:comment><comments>http://www.blogjava.net/xiaocai/archive/2007/08/17/137686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaocai/comments/commentRss/137686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaocai/services/trackbacks/137686.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/xiaocai/archive/2007/08/17/137686.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaocai/aggbug/137686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaocai/" target="_blank">小菜</a> 2007-08-17 20:19 <a href="http://www.blogjava.net/xiaocai/archive/2007/08/17/137686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java图像的平移等</title><link>http://www.blogjava.net/xiaocai/archive/2007/08/17/137483.html</link><dc:creator>小菜</dc:creator><author>小菜</author><pubDate>Fri, 17 Aug 2007 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/xiaocai/archive/2007/08/17/137483.html</guid><wfw:comment>http://www.blogjava.net/xiaocai/comments/137483.html</wfw:comment><comments>http://www.blogjava.net/xiaocai/archive/2007/08/17/137483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaocai/comments/commentRss/137483.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaocai/services/trackbacks/137483.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JAVA2D在图像处理方面提供一对接口：&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaocai/archive/2007/08/17/137483.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaocai/aggbug/137483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaocai/" target="_blank">小菜</a> 2007-08-17 10:58 <a href="http://www.blogjava.net/xiaocai/archive/2007/08/17/137483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>对于 Graphics 类的一点认识(转)</title><link>http://www.blogjava.net/xiaocai/archive/2007/08/17/137472.html</link><dc:creator>小菜</dc:creator><author>小菜</author><pubDate>Fri, 17 Aug 2007 02:08:00 GMT</pubDate><guid>http://www.blogjava.net/xiaocai/archive/2007/08/17/137472.html</guid><wfw:comment>http://www.blogjava.net/xiaocai/comments/137472.html</wfw:comment><comments>http://www.blogjava.net/xiaocai/archive/2007/08/17/137472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaocai/comments/commentRss/137472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaocai/services/trackbacks/137472.html</trackback:ping><description><![CDATA[AWT 提供了一些用户接口的构件，但是它不提供一些类似的纯粹的绘制图形的对象，例如 Rectangle、Polygon 和 Point 类没有任何绘制图形的能力。换句话说它们不具备 draw 方法，仅仅可以设置和的到它们代表的几何实体的信息。
<p>&nbsp;&nbsp;&nbsp; 为了代替那些纯粹的、可绘制图形的对象，AWT 使用了一种简单的模式。每个 AWT 构件完全来自于它自己的 java.awt.Graphics 对象。</p>
<p>&nbsp;&nbsp;&nbsp; <u><strong>java.awt.Graphics 是一个抽象类，其作用是定义一个真正的工具，用来接受图形操作。</strong></u></p>
<p><strong>表一：传递一个对 Graphics 的引用的 JDK 方法</strong></p>
<p>
<table style="WIDTH: 100%" cellSpacing=1 cellPadding=1 border=1>
    <tbody>
        <tr>
            <td>java.awt</td>
            <td>Canvas</td>
            <td>paint(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Component</td>
            <td>paint(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Component</td>
            <td>paintAll(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Component</td>
            <td>print(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Component</td>
            <td>printAll(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Component</td>
            <td>update(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Container</td>
            <td>paint(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Container</td>
            <td>paintComponents(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Container</td>
            <td>print(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>Container</td>
            <td>printComponents(Graphics g)</td>
        </tr>
        <tr>
            <td></td>
            <td>ScrollPane</td>
            <td>printComponents(Graphics g)</td>
        </tr>
        <tr>
            <td>java.beans</td>
            <td>Property-Editor</td>
            <td>paintValue(Graphics g, Rectangle r)</td>
        </tr>
        <tr>
            <td></td>
            <td>Property-EditorSupport</td>
            <td>paintValue(Graphics g, Rectangle r)</td>
        </tr>
    </tbody>
</table>
</p>
<p><strong>表二：返回 Graphics 引用的 JDK 方法</strong></p>
<p>
<table style="WIDTH: 100%" cellSpacing=1 cellPadding=1 border=1>
    <tbody>
        <tr>
            <td>java.awt</td>
            <td>Component</td>
            <td>getGraphics()</td>
        </tr>
        <tr>
            <td></td>
            <td>Image</td>
            <td>getGraphics()</td>
        </tr>
        <tr>
            <td></td>
            <td>PrintJob</td>
            <td>getGraphics()</td>
        </tr>
        <tr>
            <td></td>
            <td>Graphics</td>
            <td>create()</td>
        </tr>
        <tr>
            <td></td>
            <td>Graphics</td>
            <td>create(intx, int y, int w, int h)</td>
        </tr>
    </tbody>
</table>
</p>
<p><strong>Graphics 类履行2个主要的职责：</strong></p>
<p>&nbsp;&nbsp;&nbsp; &#183; 设置和获取图形参数。</p>
<p>&nbsp;&nbsp;&nbsp; &#183; 在输出设备中执行图形操作。</p>
<p><strong>得到构件的 Graphics 的引用有2种方法：</strong></p>
<p>&nbsp;&nbsp;&nbsp; &#183; 重载 <em>表一</em> 中的方法（传递 Graphics 的引用）</p>
<p>&nbsp;&nbsp;&nbsp; &#183; 调用 <em>表二</em> 中的方法（返回 Graphics 的副本）</p>
<p><strong>Graphics 对象的寿命</strong></p>
<p>&nbsp;&nbsp;&nbsp; 除了使用 <em>表二</em> 的方法得到的 Graphics 的副本外，使用 <em>表一</em> 的方法得到的 Graphics 的引用只有在方法的执行过程中才有效（例如重载的 paint() 和 update() 等方法）。一旦方法返回，引用将不再有效。</p>
<p>&nbsp;&nbsp;&nbsp; 通过使用 <em>表二</em> 的方法得到的 Graphics 的对象使用完后需要调用 Graphics.dispose() 方法处理。</p>
<p><font style="BACKGROUND-COLOR: #ffffcc">// 程序片断<br>public void someMethodInAComponent(){<br>&nbsp;Graphics g = getGraphics();<br>&nbsp;<br>&nbsp;if(g != null){<br>&nbsp;&nbsp;try{<br>&nbsp;&nbsp;&nbsp;// ...<br>&nbsp;&nbsp;&nbsp;// ...<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;finally{<br>&nbsp;&nbsp;&nbsp;g.dispose();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}</font></p>
<p><strong>Graphics 类还提供2个方法创建 Graphics 对象：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&#183; Graphics create()&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建精确的 Graphics 副本。</p>
<p>&nbsp;&nbsp;&nbsp; &#183; Graphics create(int x, int y, int w, int h)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建一个副本，但是，变元指定一个平移量 (x, y) 和一个新的剪贴矩形 (x, y, w, h)。create(int, int, int, int) 返回的 Graphics 的原点被转换成 (x, y) 的坐标，但是剪贴矩形转换为原剪贴矩形和指定矩形的交集。</p>
<p><font style="BACKGROUND-COLOR: #ffffcc">import java.applet.Applet;<br>import java.awt.*;<br>import java.awt.event.*;</font></p>
<p><font style="BACKGROUND-COLOR: #ffffcc">public class CreateTest extends Applet{<br>&nbsp;private Image image;<br>&nbsp;<br>&nbsp;public void init(){<br>&nbsp;&nbsp;image = getImage(getCodeBase(),"lena.jpg");<br>&nbsp;&nbsp;try{<br>&nbsp;&nbsp;&nbsp;MediaTracker mt = new MediaTracker(this);<br>&nbsp;&nbsp;&nbsp;mt.addImage(image,0);<br>&nbsp;&nbsp;&nbsp;mt.waitForID(0);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;catch(InterruptedException e){<br>&nbsp;&nbsp;&nbsp;e.printStackTrace();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>&nbsp;<br>&nbsp;public void paint(Graphics g){<br>&nbsp;&nbsp;Graphics copy = g.create(image.getWidth(this),0,image.getWidth(this),image.getHeight(this));<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;try{<br>&nbsp;&nbsp;&nbsp;System.out.println("g: " + g.getClip().toString());<br>&nbsp;&nbsp;&nbsp;System.out.println("copy: " + copy.getClip().toString());<br>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;g.drawImage(image,0,0,this);<br>&nbsp;&nbsp;&nbsp;copy.drawImage(image,0,0,this);<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;finally{<br>&nbsp;&nbsp;&nbsp;copy.dispose();<br>&nbsp;&nbsp;}<br>&nbsp;}<br>}</font></p>
<img src ="http://www.blogjava.net/xiaocai/aggbug/137472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaocai/" target="_blank">小菜</a> 2007-08-17 10:08 <a href="http://www.blogjava.net/xiaocai/archive/2007/08/17/137472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java图像技术</title><link>http://www.blogjava.net/xiaocai/archive/2007/08/17/137433.html</link><dc:creator>小菜</dc:creator><author>小菜</author><pubDate>Thu, 16 Aug 2007 23:48:00 GMT</pubDate><guid>http://www.blogjava.net/xiaocai/archive/2007/08/17/137433.html</guid><wfw:comment>http://www.blogjava.net/xiaocai/comments/137433.html</wfw:comment><comments>http://www.blogjava.net/xiaocai/archive/2007/08/17/137433.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaocai/comments/commentRss/137433.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaocai/services/trackbacks/137433.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 笔者在这里将画线,画或填充多边形等理解为"图形"技术,将图片的变换,显示理解为"图像"技术.<br><br>相对而言,图形技术较简单,图像技术较复杂.下面笔者从实用的角度出发,讲解几个图像编程问题.首先,我们看下面这个程序.<br><br>import java.applet.*;<br><br>import java.awt.*;&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaocai/archive/2007/08/17/137433.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaocai/aggbug/137433.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaocai/" target="_blank">小菜</a> 2007-08-17 07:48 <a href="http://www.blogjava.net/xiaocai/archive/2007/08/17/137433.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>