﻿<?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>C++博客-misschuer-随笔分类-as</title><link>http://www.cppblog.com/misschuer/category/19775.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 10 Aug 2012 03:19:18 GMT</lastBuildDate><pubDate>Fri, 10 Aug 2012 03:19:18 GMT</pubDate><ttl>60</ttl><item><title>alchemy c   图像的缩放  (三次卷积)</title><link>http://www.cppblog.com/misschuer/archive/2012/08/10/186801.html</link><dc:creator>此最相思</dc:creator><author>此最相思</author><pubDate>Fri, 10 Aug 2012 02:11:00 GMT</pubDate><guid>http://www.cppblog.com/misschuer/archive/2012/08/10/186801.html</guid><wfw:comment>http://www.cppblog.com/misschuer/comments/186801.html</wfw:comment><comments>http://www.cppblog.com/misschuer/archive/2012/08/10/186801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/misschuer/comments/commentRss/186801.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/misschuer/services/trackbacks/186801.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><font size="2">在alchemy c中进行图片的缩放<br /></font>传进的是byteArray 传出的也是byteArray 千万不要在alchemy c 中对as的对象进行函数调用 那样速度很慢.... 达不到炼金术的效果...&nbsp;<br /><font size="2">好吧 代码 自己看吧 还是比较简单的<br />alchemy c 代码</font><br /><font size="2">#include&nbsp;&lt;iostream&gt;</font><br /><font size="2">#include&nbsp;&lt;stdio.h&gt;</font><br /><font size="2">#include&nbsp;&lt;stdlib.h&gt;</font><br /><font size="2">#include&nbsp;&lt;</font><span style="font-size: 13px; color: #0000ff; ">string</span><font size="2">.h&gt;</font><br /><font size="2">#include&nbsp;&lt;math.h&gt;</font><br /><font size="2">#include&nbsp;"AS3.h"</font><br /><font size="2">typedef&nbsp;unsigned&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">;</font><br /><span style="font-size: 13px; color: #0000ff; ">#define</span><font size="2">&nbsp;MAXV&nbsp;4</font><br /><span style="font-size: 13px; color: #0000ff; ">using</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">namespace</span><font size="2">&nbsp;std;</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;SinXDivX(</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;x)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;a&nbsp;=&nbsp;-1;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(x&nbsp;&lt;&nbsp;0)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;-x;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;x2&nbsp;=&nbsp;x&nbsp;*&nbsp;x;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;x3&nbsp;=&nbsp;x2&nbsp;*&nbsp;x;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(x&nbsp;&lt;=&nbsp;1)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;(a&nbsp;+&nbsp;2)&nbsp;*&nbsp;x3&nbsp;-&nbsp;(a&nbsp;+&nbsp;3)&nbsp;*&nbsp;x2&nbsp;+&nbsp;1;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">else</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(x&nbsp;&lt;=&nbsp;2)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;a&nbsp;*&nbsp;x3&nbsp;-&nbsp;5&nbsp;*&nbsp;a&nbsp;*&nbsp;x2&nbsp;+&nbsp;8&nbsp;*&nbsp;a&nbsp;*&nbsp;x&nbsp;-&nbsp;4&nbsp;*&nbsp;a;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;0;</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;availablePixel(</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;*src,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;srcWidth,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;srcHeight,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;x,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;y)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">bool</span><font size="2">&nbsp;flag&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">true</span><font size="2">;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(x&nbsp;&lt;&nbsp;0)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;0;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">false</span><font size="2">;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">else</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(x&nbsp;&gt;=&nbsp;srcWidth)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;srcWidth&nbsp;-&nbsp;1;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">false</span><font size="2">;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(y&nbsp;&lt;&nbsp;0)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;0;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">false</span><font size="2">;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">else</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(y&nbsp;&gt;=&nbsp;srcHeight)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;srcHeight&nbsp;-&nbsp;1;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">false</span><font size="2">;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;lenth&nbsp;=&nbsp;srcWidth&nbsp;*&nbsp;srcHeight;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">in</span><font size="2">&nbsp;=&nbsp;x&nbsp;+&nbsp;y*srcWidth;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;ret&nbsp;=&nbsp;src[</font><span style="font-size: 13px; color: #0000ff; ">in</span><font size="2">];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(!flag)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;=&nbsp;ret&nbsp;&amp;&nbsp;0x00ffffff;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;ret;</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;border_color(</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;Color)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(Color&nbsp;&lt;=&nbsp;0)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">(0);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(Color&nbsp;&gt;=&nbsp;255)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">(255);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">(Color);</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;*strreverse(</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;*a)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;r[10]&nbsp;=&nbsp;{&nbsp;0&nbsp;};</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i,&nbsp;j;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(i&nbsp;=&nbsp;0,&nbsp;j&nbsp;=&nbsp;strlen(a)&nbsp;-&nbsp;1;&nbsp;a[i];&nbsp;++i,&nbsp;--j)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r[j]&nbsp;=&nbsp;a[i];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;r;</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;*toString(</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;val)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;a[10]&nbsp;=&nbsp;{&nbsp;0&nbsp;};</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">char</span><font size="2">&nbsp;ch[16]&nbsp;=&nbsp;{&nbsp;'0',&nbsp;'1',&nbsp;'2',&nbsp;'3',&nbsp;'4',&nbsp;'5',&nbsp;'6',&nbsp;'7',&nbsp;'8',&nbsp;'9',&nbsp;'A',&nbsp;'B',</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'C',&nbsp;'D',&nbsp;'E',&nbsp;'F'&nbsp;};</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i&nbsp;=&nbsp;0,&nbsp;rt;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(val&nbsp;==&nbsp;0)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[0]&nbsp;=&nbsp;'0';</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">while</span><font size="2">&nbsp;(val)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rt&nbsp;=&nbsp;val&nbsp;%&nbsp;16;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val&nbsp;&gt;&gt;=&nbsp;4;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i++]&nbsp;=&nbsp;ch[rt];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;strreverse(a);</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;MatrixMutiple(</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;a[],&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;b[][MAXV],&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;c[],&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;ii,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;jj)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i,&nbsp;j,&nbsp;k,&nbsp;z;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;tp[MAXV],&nbsp;ret[MAXV],&nbsp;ttp[MAXV];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;memset(ret,&nbsp;0.0,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">sizeof</span><font size="2">(ret));</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;MAXV;&nbsp;++i)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(tp,&nbsp;0.0,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">sizeof</span><font size="2">(tp));</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;MAXV;&nbsp;++j)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp[0]&nbsp;+=&nbsp;a[j]&nbsp;*&nbsp;(b[j][i]&nbsp;&gt;&gt;&nbsp;24);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp[1]&nbsp;+=&nbsp;a[j]&nbsp;*&nbsp;((b[j][i]&nbsp;&amp;&nbsp;0x00ffffff)&nbsp;&gt;&gt;&nbsp;16);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp[2]&nbsp;+=&nbsp;a[j]&nbsp;*&nbsp;((b[j][i]&nbsp;&amp;&nbsp;0x0000ffff)&nbsp;&gt;&gt;&nbsp;8);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp[3]&nbsp;+=&nbsp;a[j]&nbsp;*&nbsp;(b[j][i]&nbsp;&amp;&nbsp;0x000000ff);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;MAXV;&nbsp;++k)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret[k]&nbsp;+=&nbsp;c[i]&nbsp;*&nbsp;tp[k];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;af1&nbsp;=&nbsp;border_color(ret[0]&nbsp;+&nbsp;0.5)&nbsp;&lt;&lt;&nbsp;24;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;r1&nbsp;=&nbsp;border_color(ret[1]&nbsp;+&nbsp;0.5)&nbsp;&lt;&lt;&nbsp;16;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;g1&nbsp;=&nbsp;border_color(ret[2]&nbsp;+&nbsp;0.5)&nbsp;&lt;&lt;&nbsp;8;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;b1&nbsp;=&nbsp;border_color(ret[3]&nbsp;+&nbsp;0.5);</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;af1&nbsp;+&nbsp;r1&nbsp;+&nbsp;g1&nbsp;+&nbsp;b1;</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">void</span><font size="2">&nbsp;echo(</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;*val,&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;len)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i&nbsp;=&nbsp;0;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;++i)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AS3_Trace(AS3_String(toString(val[i])));</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">static</span><font size="2">&nbsp;AS3_Val&nbsp;biCubic(</font><span style="font-size: 13px; color: #0000ff; ">void</span><font size="2">*&nbsp;self,&nbsp;AS3_Val&nbsp;args)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_Val&nbsp;srcByte,&nbsp;dstByte;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;srcWidth,&nbsp;srcHeight,&nbsp;dstWidth,&nbsp;dstHeight;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_ArrayValue(args,</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"AS3ValType,&nbsp;IntType,&nbsp;IntType,&nbsp;AS3ValType,&nbsp;IntType,&nbsp;IntType",</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;srcByte,&nbsp;&amp;srcWidth,&nbsp;&amp;srcHeight,&nbsp;&amp;dstByte,&nbsp;&amp;dstWidth,&nbsp;&amp;dstHeight);</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;srcLen&nbsp;=&nbsp;srcWidth&nbsp;*&nbsp;srcHeight;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;dstLen&nbsp;=&nbsp;dstWidth&nbsp;*&nbsp;dstHeight;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;*src&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">new</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">[srcLen];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;*dst&nbsp;=&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">new</span><font size="2">&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">[dstLen];</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_SetS(srcByte,&nbsp;"position",&nbsp;AS3_Int(0));</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_ByteArray_readBytes(src,&nbsp;srcByte,&nbsp;4&nbsp;*&nbsp;srcLen);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;widthFactor&nbsp;=&nbsp;1.0&nbsp;*&nbsp;srcWidth&nbsp;/&nbsp;dstWidth;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;heightFactor&nbsp;=&nbsp;1.0&nbsp;*&nbsp;srcHeight&nbsp;/&nbsp;dstHeight;</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;i,&nbsp;j,&nbsp;k,&nbsp;z,&nbsp;gf&nbsp;=&nbsp;0;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;tx,&nbsp;ty,&nbsp;u,&nbsp;v;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;x,&nbsp;y;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">double</span><font size="2">&nbsp;A[MAXV],&nbsp;C[MAXV];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">uint</span><font size="2">&nbsp;B[MAXV][MAXV];</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;dstWidth;&nbsp;++i)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;dstHeight;&nbsp;++j)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tx&nbsp;=&nbsp;(i&nbsp;+&nbsp;0.5)&nbsp;*&nbsp;widthFactor&nbsp;-&nbsp;0.5;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ty&nbsp;=&nbsp;(j&nbsp;+&nbsp;0.5)&nbsp;*&nbsp;heightFactor&nbsp;-&nbsp;0.5;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(tx&nbsp;&lt;&nbsp;0)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tx&nbsp;=&nbsp;-tx;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">if</span><font size="2">&nbsp;(ty&nbsp;&lt;&nbsp;0)</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ty&nbsp;=&nbsp;-ty;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;floor(tx);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;floor(ty);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u&nbsp;=&nbsp;tx&nbsp;-&nbsp;x;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;=&nbsp;ty&nbsp;-&nbsp;y;</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;MAXV;&nbsp;++k)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[k]&nbsp;=&nbsp;SinXDivX(u&nbsp;+&nbsp;1.0&nbsp;-&nbsp;k);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[k]&nbsp;=&nbsp;SinXDivX(v&nbsp;+&nbsp;1.0&nbsp;-&nbsp;k);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">for</span><font size="2">&nbsp;(z&nbsp;=&nbsp;0;&nbsp;z&nbsp;&lt;&nbsp;MAXV;&nbsp;++z)&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B[k][z]&nbsp;=&nbsp;availablePixel(src,&nbsp;srcWidth,&nbsp;srcHeight,</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;+&nbsp;k&nbsp;-&nbsp;1,&nbsp;y&nbsp;+&nbsp;z&nbsp;-&nbsp;1);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[i+j*dstWidth]&nbsp;=&nbsp;MatrixMutiple(A,&nbsp;B,&nbsp;C,&nbsp;i,&nbsp;j);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;}</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #008000; ">//</span><span style="font-size: 13px; color: #008000; ">echo(dst,&nbsp;dstLen);</span><span style="font-size: 13px; color: #008000; "><br /></span><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_SetS(dstByte,&nbsp;"position",&nbsp;AS3_Int(0));</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_ByteArray_writeBytes(dstByte,&nbsp;dst,&nbsp;4&nbsp;*&nbsp;dstLen);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;AS3_True();</font><br /><font size="2">}</font><br /><br /><span style="font-size: 13px; color: #0000ff; ">int</span><font size="2">&nbsp;main()&nbsp;{</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_Val&nbsp;biCubicMethod&nbsp;=&nbsp;AS3_Function(NULL,&nbsp;biCubic);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_Val&nbsp;lib&nbsp;=&nbsp;AS3_Object("biCubic:AS3ValType",&nbsp;biCubicMethod);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_Release(biCubicMethod);</font><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;AS3_LibInit(lib);</font><br /><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;</font><span style="font-size: 13px; color: #0000ff; ">return</span><font size="2">&nbsp;0;</font><br /><font size="2">}</font><br /><br /><br /><font size="2">as 代码</font><br /><div>package {</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>import cmodule.ImageScaling.CLibInit;</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>import flash.display.Bitmap;</div><div><span style="white-space:pre">	</span>import flash.display.BitmapData;</div><div><span style="white-space:pre">	</span>import flash.display.Sprite;</div><div><span style="white-space:pre">	</span>import flash.display.StageScaleMode;</div><div><span style="white-space:pre">	</span>import flash.geom.Rectangle;</div><div><span style="white-space:pre">	</span>import flash.utils.ByteArray;</div><div><span style="white-space:pre">	</span>import flash.utils.Timer;</div><div></div><div><span style="white-space:pre">	</span>[SWF(width="1000", height="600", backgroundColor="#000000", frameRate="24")]</div><div><span style="white-space:pre">	</span>public class Main extends Sprite {</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>[Embed(source='f_01.png')]</div><div><span style="white-space:pre">		</span>public static const image:Class;</div><div><span style="white-space:pre">		</span>public function Main() {</div><div><span style="white-space:pre">			</span>this.stage.scaleMode = StageScaleMode.NO_SCALE;</div><div><span style="white-space:pre">			</span>var bitmapdata:BitmapData = (new image() as Bitmap).bitmapData;</div><div><span style="white-space:pre">			</span>var t1:Number = (new Date()).time;</div><div><span style="white-space:pre">			</span>var bitmap:Bitmap = new Bitmap(Main.Cubic(bitmapdata, 256, 256));</div><div><span style="white-space:pre">			</span>var t2:Number = (new Date()).time;</div><div><span style="white-space:pre">			</span>trace((t2-t1)+"ms");</div><div><span style="white-space:pre">			</span>this.addChild(bitmap);</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>public static function Cubic (bitmapData:BitmapData, scalingWidth:uint, scalingHeight:uint):BitmapData {</div><div><span style="white-space:pre">			</span>var nbd:BitmapData = new BitmapData(scalingWidth, scalingHeight, true, 0xffffffff);</div><div><span style="white-space:pre">			</span>var loader:cmodule.ImageScaling.CLibInit = new cmodule.ImageScaling.CLibInit();</div><div><span style="white-space:pre">			</span>var lib:Object = loader.init();</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>var byte:ByteArray = bitmapData.getPixels(new Rectangle(0, 0, bitmapData.width, bitmapData.height));</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>var byte2:ByteArray = nbd.getPixels(new Rectangle(0, 0, scalingWidth, scalingHeight));</div><div><span style="white-space:pre">			</span></div><div><span style="white-space:pre">			</span>lib.biCubic(byte, bitmapData.width, bitmapData.height, byte2, scalingWidth, scalingHeight);</div><div><span style="white-space:pre">			</span>byte2.position = 0;</div><div><span style="white-space:pre">			</span>nbd.setPixels(new Rectangle(0, 0, scalingWidth, scalingHeight), byte2);</div><div><span style="white-space:pre">			</span>return nbd;</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div>}</div><br /><br /></div><img src ="http://www.cppblog.com/misschuer/aggbug/186801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/misschuer/" target="_blank">此最相思</a> 2012-08-10 10:11 <a href="http://www.cppblog.com/misschuer/archive/2012/08/10/186801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>as 图片的缩放算法 (二次线性 和 三次卷积) </title><link>http://www.cppblog.com/misschuer/archive/2012/08/07/186538.html</link><dc:creator>此最相思</dc:creator><author>此最相思</author><pubDate>Tue, 07 Aug 2012 01:58:00 GMT</pubDate><guid>http://www.cppblog.com/misschuer/archive/2012/08/07/186538.html</guid><wfw:comment>http://www.cppblog.com/misschuer/comments/186538.html</wfw:comment><comments>http://www.cppblog.com/misschuer/archive/2012/08/07/186538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/misschuer/comments/commentRss/186538.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/misschuer/services/trackbacks/186538.html</trackback:ping><description><![CDATA[<a href="http://blog.csdn.net/housisong/article/details/1452249" target="_blank"><a href="http://blog.csdn.net/housisong/article/details/1452249" target="_blank"><div style="display: inline !important; "><span style="line-height: 20.899999618530273px;">package {</span></div></a><br /><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">	</span>import flash.display.BitmapData;</span></div><div><span style="line-height: 20.899999618530273px; "><span style="white-space:pre">	</span>public class ImageScaling {</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static var PI:Number = Math.PI;</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px; ">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getA(val:uint):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return val &gt;&gt;&gt; 24;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getR(val:uint):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return (val &amp; 0x00ffffff) &gt;&gt;&gt; 16;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getG(val:uint):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return (val &amp; 0x0000ffff) &gt;&gt;&gt; 8;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getB(val:uint):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return val &amp; 0x000000ff;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getAA(val:Array):Array {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:Array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:uint = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (var j:uint = 0; j &lt; 4; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>ret[ i ][ j ] = val[ i ][ j ] &gt;&gt;&gt; 24;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return ret;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getRR(val:Array):Array {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:Array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:uint = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (var j:uint = 0; j &lt; 4; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>ret[ i ][ j ] = (val[ i ][ j ] &amp; 0x00ffffff) &gt;&gt;&gt; 16;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return ret;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getGG(val:Array):Array {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:Array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:uint = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (var j:uint = 0; j &lt; 4; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>ret[ i ][ j ] = (val[ i ][ j ] &amp; 0x0000ffff) &gt;&gt;&gt; 8;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return ret;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getBB(val:Array):Array {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:Array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:uint = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (var j:uint = 0; j &lt; 4; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>ret[ i ][ j ] = (val[ i ][ j ] &amp; 0x000000ff);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return ret;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function availablePixel (bitmapData:BitmapData, x:uint, y:uint):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var flag:Boolean = true;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (x &lt; 0) { x = 0; flag = false; }</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>else if (x &gt;= bitmapData.width) { x = bitmapData.width - 1; flag = false; }</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>else if (y &lt; 0) { y = 0; flag = false; }</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>else if (y &gt;= bitmapData.height) { y = bitmapData.height - 1; flag = false; }</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:uint = bitmapData.getPixel32(x, y);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (!flag) ret = ret &amp; 0x00ffffff;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return ret;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function SinXDivX(x:Number):Number {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var a:Number = -1;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (x &lt; 0) x = -x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var x2:Number = x*x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var x3:Number = x2*x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (x &lt;= 1)</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>return (a + 2) * x3 - (a + 3) * x2 + 1;<span style="white-space:pre">	</span></span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>else if (x &lt;= 2)&nbsp;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>return a * x3 - 5 * a * x2 + 8 * a * x - 4 * a;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return 0;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function getPixels(a:Array, b:Array, c:Array):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var arfa:Array = ImageScaling.getAA(b);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var R:Array = ImageScaling.getRR(b);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var G:Array = ImageScaling.getGG(b);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var B:Array = ImageScaling.getBB(b);</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">			</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var aa:uint = ImageScaling.MatrixMutiple(a, arfa, c) &lt;&lt; 24;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var rr:uint = ImageScaling.MatrixMutiple(a, R, c) &lt;&lt; 16;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var gg:uint = ImageScaling.MatrixMutiple(a, G, c) &lt;&lt; 8;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var bb:uint = ImageScaling.MatrixMutiple(a, B, c);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>//trace (aa + " " + rr + " " + gg + " " + bb);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return aa + rr + gg + bb;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function border_color(Color:Number):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (Color &lt;= 0) return uint(0);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>if (Color &gt;= 255) return uint(255);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return uint(Color);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function MatrixMutiple(a:Array, b:Array, c:Array):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ret:Number = 0;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:int = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>var tmp:Number = 0;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (var j:int = 0; j &lt; 4; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>tmp += a[ j ] * b[ j ][ i ];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>ret += c[ i ] * tmp;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return border_color(ret + 0.5);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function thirdConvolution (bitmapData:BitmapData, scalingWidth:uint, scalingHeight:uint):BitmapData {</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">			</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var widthFactor:Number = bitmapData.width / scalingWidth;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var heightFactor:Number = bitmapData.height / scalingHeight;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var i:uint = 0, j:uint = 0;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var nbd:BitmapData = new BitmapData(scalingWidth, scalingHeight, true, 0xffffffff);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (i = 0; i &lt; scalingWidth; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (j = 0; j &lt; scalingHeight; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var tx:Number = (i + 0.5) * widthFactor - 0.5;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var ty:Number = (j + 0.5) * heightFactor - 0.5;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>if (tx &lt; 0) tx = -tx;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>if (ty &lt; 0) ty = -ty;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var x:uint = Math.floor(tx);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var y:uint = Math.floor(ty);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var u:Number = tx - x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var v:Number = ty - y;</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var A:Array = [0.0, 0.0, 0.0, 0.0];&nbsp;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var B:Array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];&nbsp;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var C:Array = [0.0, 0.0, 0.0, 0.0];</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>for (var k:int = 0; k &lt; 4; ++ k) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">						</span>A[ k ] = ImageScaling.SinXDivX(u+1.0-k);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">						</span>C[ k ] = ImageScaling.SinXDivX(v+1.0-k);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">						</span>for (var z:int = 0; z &lt; 4; ++ z) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">							</span>B[ k ][ z ] = ImageScaling.availablePixel(bitmapData, x+k-1, y+z-1);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">						</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var p:uint = ImageScaling.getPixels(A, B, C);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>nbd.setPixel32(i, j, p);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">			</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return nbd;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function calculator(p:Array, c:Array):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return uint(p[0]*c[0]+p[1]*c[1]+p[2]*c[2]+p[3]*c[3]);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function mixedPixel(p:Array, c:Array):uint {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var aa:Array = [0, 0, 0, 0];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ra:Array = [0, 0, 0, 0];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ga:Array = [0, 0, 0, 0];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var ba:Array = [0, 0, 0, 0];</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (var i:uint = 0; i &lt; 4; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>aa[ i ] = ImageScaling.getA(p[ i ]);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>ra[ i ] = ImageScaling.getR(p[ i ]);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>ga[ i ] = ImageScaling.getG(p[ i ]);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>ba[ i ] = ImageScaling.getB(p[ i ]);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return (ImageScaling.calculator(aa, c) &lt;&lt; 24) + (ImageScaling.calculator(ra, c) &lt;&lt; 16) + (ImageScaling.calculator(ga, c) &lt;&lt; 8) + ImageScaling.calculator(ba, c);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>public static function secondLinear (bitmapData:BitmapData, scalingWidth:uint, scalingHeight:uint):BitmapData {</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">			</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var widthFactor:Number = bitmapData.width / scalingWidth;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var heightFactor:Number = bitmapData.height / scalingHeight;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var i:uint = 0, j:uint = 0;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>var nbd:BitmapData = new BitmapData(scalingWidth, scalingHeight, true, 0xffffffff);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>for (i = 0; i &lt; scalingWidth; ++ i) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>for (j = 0; j &lt; scalingHeight; ++ j) {</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var tx:Number = i * widthFactor - 0.5;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var ty:Number = j * heightFactor - 0.5;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>if (tx &lt; 0) tx = -tx;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>if (ty &lt; 0) ty = -ty;</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var x:uint = Math.floor(tx);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var y:uint = Math.floor(ty);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var u:Number = tx - x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var v:Number = ty - y;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var ti:uint = x;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var tj:uint = y;</span></div><div><span style="line-height: 20.899999618530273px;"><br /></span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var p0:uint = ImageScaling.availablePixel(bitmapData, x, y);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var p1:uint = ImageScaling.availablePixel(bitmapData, x, y+1);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var p2:uint = ImageScaling.availablePixel(bitmapData, x+1, y);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var p3:uint = ImageScaling.availablePixel(bitmapData, x+1, y+1);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var pa:Array = [p0, p1, p2, p3];</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var c0:Number = (1.0-u)*(1.0-v);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var c1:Number = (1.0-u)*v;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var c2:Number = u*(1.0-v);</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var c3:Number = u*v;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>var ca:Array = [c0, c1, c2, c3];</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">					</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">					</span>nbd.setPixel32(i, j, ImageScaling.mixedPixel(pa, ca));</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">				</span>}</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">			</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">			</span>return nbd;</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.899999618530273px;">		</span></div><div><span style="line-height: 20.899999618530273px;"><span style="white-space:pre">	</span>}</span></div><div><span style="line-height: 20.899999618530273px;">}</span></div><div><span style="line-height: 20.899999618530273px;"><br /></span></div><div><span style="line-height: 20.899999618530273px;">测试:</span><br /><div><span style="line-height: 20.883333206176758px;">package {</span></div><div><span style="white-space: pre; line-height: 20.883333206176758px;">	</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.display.Bitmap;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.display.BitmapData;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.display.Sprite;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.geom.Rectangle;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.system.ImageDecodingPolicy;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>import flash.utils.ByteArray;</span></div><div><span style="line-height: 20.883333206176758px;"><br /></span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>[SWF(width="1000", height="600", backgroundColor="#cacaca", frameRate="24")]</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>public class Main extends Sprite {</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>[Embed(source='dog.png')]</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>public static const image:Class;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>public function Main() {</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>var bitmapdata:BitmapData = (new image() as Bitmap).bitmapData</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>var bitmap:Bitmap = new Bitmap(showImage2(bitmapdata));</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>bitmap.x = 0;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>bitmap.y = 0;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>this.addChild(bitmap);</span></div><div><span style="white-space: pre; line-height: 20.883333206176758px;">			</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>var bitmap2:Bitmap = new Bitmap(showImage1(bitmapdata));</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>bitmap2.x = 300;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>bitmap2.y = 300;</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>this.addChild(bitmap2);</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.883333206176758px;">		</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>public static function showImage1(bitmapdata:BitmapData):BitmapData {</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>return ImageScaling.secondLinear(bitmapdata, 286, 300);</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>}</span></div><div><span style="white-space: pre; line-height: 20.883333206176758px;">		</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>public static function showImage2(bitmapdata:BitmapData):BitmapData {</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">			</span>return ImageScaling.thirdConvolution(bitmapdata, 286, 300);</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">		</span>}</span></div><div><span style="line-height: 20.883333206176758px;"><span style="white-space:pre">	</span>}</span></div><div><span style="line-height: 20.883333206176758px;">}</span></div><br /><br /><br />__________________________________________________<br /><span style="color: #000000; ">参考</span><a href="http://blog.csdn.net/housisong/article/details/1452249" target="_blank"><span style="font-size: 14.545454025268555px; line-height: 20.909090042114258px; ">h ttp://blog.csdn.net/housisong/article/details/1452249</span></a>&nbsp;<br /></div><div><span style="line-height: 20.899999618530273px;"><br /></span></div><div style="font-family: arial; font-size: 14.545454025268555px; line-height: 20.909090042114258px; "></div></a><img src ="http://www.cppblog.com/misschuer/aggbug/186538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/misschuer/" target="_blank">此最相思</a> 2012-08-07 09:58 <a href="http://www.cppblog.com/misschuer/archive/2012/08/07/186538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>