<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DigiTechLog Dot Com &#187; BitmapData</title>
	<atom:link href="http://digitechlog.com/tag/bitmapdata/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PotrAs: ２色のラスタ画像（BitmapData）からベクタ変換するActionScript 3ライブラリ</title>
		<link>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html</link>
		<comments>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:16:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash Project]]></category>
		<category><![CDATA[BitmapData]]></category>
		<category><![CDATA[Portrace]]></category>
		<category><![CDATA[PotrAs]]></category>
		<category><![CDATA[ベクタ]]></category>
		<category><![CDATA[ラスタ画像]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html</guid>
		<description><![CDATA[PotrAsとは、日本人で開発され、２色のラスタ画像（BitmapData?）からベクタ変換するPortraceをActionScript 3に移植したオープンソースライブラリです。GPLライセンスで発表されていました。
PotrAsを利用してBitmapDataから、ベクターによるシェイプを生成することができます。
プレゼン資料はリアルタイムで変換しながら表示しているので、CPU 消費量が少し高めです。あと、Mac でどう表示されるかが分からないのがちょっと不安です（アンチエイリアスがらみ）。

という問題もありそうです。
 
 
新たなモーションタイポの可能性 
Flash でモーションタイポするには、問題点がいろいろありました。デバイスフォントは回転・透過ができなくて表現力が低すぎるし、BitmapData に転写すると処理が煩雑になってしまいます。フォントを埋め込めば自由にできるのですが、日本語フォントは権利関係が難しいし、ファイルサイズも大きくなってしまいます。 
それに対する解が、この PotrAs です。デバイスフォントを BitmapData に描画し、それをトレースしてベクタ変換します。アクロバティックですが、ローカルのフォントを使っているので権利関係も（たぶん）問題ありません。回転縮小アルファも自由自在。塗りや線のスタイルを少し変えるだけで文字の表情も変わります。また、あえて低い解像度でトレースすると、味のある見た目になります。上のスライドの１枚目がそれです。 
新たなモーションタイポの表現が可能になる気がしています。みんな遊んでね。

関連情報：
以下より入手できます。
http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras
参考資料の一つ：ラスタ→ベクタ変換する AS ライブラリ &#34;PotrAs&#34;
参考資料の２番目： String型の文字列をチラシ文字のような画像を作成
デモの四つがある：http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/
公式サイト：http://www.libspark.org/wiki/nitoyon/PotrAs
最後はそんなに関係ないですが、ActionScriptのノウハウをみんなで共有しよう＠Spark projectでSpark projectの紹介していくつか優秀のASプロジェクトも挙げているので、自分が興味あるものを見つけるかの知れないね。
Related Posts

8 Adobe ActionScriptのチュートリアルフラッシュ
７+ AS3で非同期処理のオープンソースのライブラリ一覧
AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク
FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン
Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス
ActionScriptのクッキー（Cookie）操作クラス
ActionScriptで実現するテキストサーチエンジンクラス
フラッシュのAS2からAS3に移行：動的なMovieClipを作成する

]]></description>
			<content:encoded><![CDATA[<p>PotrAsとは、日本人で開発され、２色のラスタ画像（BitmapData?）からベクタ変換するPortraceをActionScript 3に移植したオープンソースライブラリです。GPLライセンスで発表されていました。</p>
<p>PotrAsを利用してBitmapDataから、ベクターによるシェイプを生成することができます。</p>
<blockquote><p>プレゼン資料はリアルタイムで変換しながら表示しているので、CPU 消費量が少し高めです。あと、Mac でどう表示されるかが分からないのがちょっと不安です（アンチエイリアスがらみ）。</p>
</blockquote>
<p>という問題もありそうです。</p>
<p><a href="http://digitechlog.com/wp-content/uploads/2010/01/PotrAsconvertbitmapdatavectorinactionscript3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="PotrAs-convert-bitmap-data-vector-in-actionscript3" border="0" alt="PotrAs-convert-bitmap-data-vector-in-actionscript3" src="http://digitechlog.com/wp-content/uploads/2010/01/PotrAsconvertbitmapdatavectorinactionscript3_thumb.png" width="478" height="356" /></a> </p>
<p> <span id="more-898"></span>
<p><strong>新たなモーションタイポの可能性</strong> </p>
<blockquote><p>Flash でモーションタイポするには、問題点がいろいろありました。デバイスフォントは回転・透過ができなくて表現力が低すぎるし、BitmapData に転写すると処理が煩雑になってしまいます。フォントを埋め込めば自由にできるのですが、日本語フォントは権利関係が難しいし、ファイルサイズも大きくなってしまいます。 </p>
<p>それに対する解が、この PotrAs です。デバイスフォントを BitmapData に描画し、それをトレースしてベクタ変換します。アクロバティックですが、ローカルのフォントを使っているので権利関係も（たぶん）問題ありません。回転縮小アルファも自由自在。塗りや線のスタイルを少し変えるだけで文字の表情も変わります。また、あえて低い解像度でトレースすると、味のある見た目になります。上のスライドの１枚目がそれです。 </p>
<p>新たなモーションタイポの表現が可能になる気がしています。みんな遊んでね。</p>
</blockquote>
<p><strong>関連情報：</strong></p>
<p>以下より入手できます。</p>
<p><a href="http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras">http://snippets.libspark.org/svn/as3/PotrAs/src/com/nitoyon/potras</a></p>
<p>参考資料の一つ：<a href="http://d.hatena.ne.jp/nitoyon/20071002/potrace" name="potrace">ラスタ→ベクタ変換する AS ライブラリ &quot;PotrAs&quot;</a></p>
<p>参考資料の２番目： <a href="http://mfria.blog106.fc2.com/blog-entry-143.html" target="_blank">String型の文字列をチラシ文字のような画像を作成</a></p>
<p>デモの四つがある：<a title="http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/" href="http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/">http://www.libspark.org/svn/as3/PotrAs/samples/potras/demo20070929/bin/</a></p>
<p>公式サイト：<a title="http://www.libspark.org/wiki/nitoyon/PotrAs" href="http://www.libspark.org/wiki/nitoyon/PotrAs">http://www.libspark.org/wiki/nitoyon/PotrAs</a></p>
<p>最後はそんなに関係ないですが、<a href="http://www.adobe.com/jp/devnet/flash/articles/spark_project.html" target="_blank">ActionScriptのノウハウをみんなで共有しよう＠Spark project</a>でSpark projectの紹介していくつか優秀のASプロジェクトも挙げているので、自分が興味あるものを見つけるかの知れないね。</p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2010/06/06/8-helpfull-adobe-flash-actionscript.html" title="8 Adobe ActionScriptのチュートリアルフラッシュ">8 Adobe ActionScriptのチュートリアルフラッシュ</a></li>
<li><a href="http://digitechlog.com/2010/03/12/7-asynchronous-processing-open-source-actionscript-library.html" title="７+ AS3で非同期処理のオープンソースのライブラリ一覧">７+ AS3で非同期処理のオープンソースのライブラリ一覧</a></li>
<li><a href="http://digitechlog.com/2010/02/13/as3unit-actionscript-3-junit-for-flash.html" title="AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク">AS3Unit: ActionScript 3.0上JUnit4の移植、単体テストを行うためのフレームワーク</a></li>
<li><a href="http://digitechlog.com/2010/02/07/foam-as3-2d-rigid-body-physics-engine.html" title="FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン">FOAM-AS3: ActionScript 3で開発されたオープンソースの２D物理エンジン</a></li>
<li><a href="http://digitechlog.com/2009/12/28/basic-arraybinder-class-for-flash-cs3-and-actionscript-projects.html" title="Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス">Flash CS3とアクションプロジェクト向けベーシックのArrayBinderクラス</a></li>
<li><a href="http://digitechlog.com/2009/12/10/actionscript-cookie-util-class-free-download.html" title="ActionScriptのクッキー（Cookie）操作クラス">ActionScriptのクッキー（Cookie）操作クラス</a></li>
<li><a href="http://digitechlog.com/2009/12/03/textsearchengine-flash-text-search-engine-class.html" title="ActionScriptで実現するテキストサーチエンジンクラス">ActionScriptで実現するテキストサーチエンジンクラス</a></li>
<li><a href="http://digitechlog.com/2009/11/04/flash-as2-move-to-as3-dynamic-movieclip-creation.html" title="フラッシュのAS2からAS3に移行：動的なMovieClipを作成する">フラッシュのAS2からAS3に移行：動的なMovieClipを作成する</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2010/01/29/potras-convert-bitmap-data-vector-in-actionscript3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWFフォーマット画像ファイルをローカルに保存とするAdobe AIRアプリケーション</title>
		<link>http://digitechlog.com/2009/01/16/the-tutorial-on-how-to-save-swf-file-from-an-image-bitmap-in-adobe-air.html</link>
		<comments>http://digitechlog.com/2009/01/16/the-tutorial-on-how-to-save-swf-file-from-an-image-bitmap-in-adobe-air.html#comments</comments>
		<pubDate>Fri, 16 Jan 2009 13:25:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ニュース]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[BitmapData]]></category>
		<category><![CDATA[loadBytes]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[PNGEncoder]]></category>
		<category><![CDATA[SWF]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/01/16/the-tutorial-on-how-to-save-swf-file-from-an-image-bitmap-in-adobe-air.html</guid>
		<description><![CDATA[Adobe AIRアプリケーションにLoaderクラスを利用してロードされた画像ファイル、内部的に圧縮されたSWFファイルではなくて独自なフレームとして保存されます（そのような話について、正式なドキュメントとか資料はないようですが、誰か知ってるとぜひ教えていただきますね）。
BitmapDataをPNGやJPEGなどをエンコードして、loadBytesメソッドでLoaderにロードして、終わったらLoaderInfoクラスのbytesというプロパティでSWFに出力するようになります。そうする、SWFフォーマット画像ファイルをローカルに保存することをできました。注意しなければいけないのは、そのような操作はAdobe AIRだけです。ほかのウェブ系とかはいけないです。

下記はBitmapDataクラスからローカルswfファイルを生成／保存するメソッドです。
/* create bitmap to be saved as an swf file */
&#160;var bd:BitmapData = new BitmapData(320,240);
&#160;/* capture application snapshot, this can be any other object */
&#160;bd.draw( Application.application as IBitmapDrawable );
作ったビットマップファイルをPNGやJPEGなどバーチャルファイルにエンコード処理を必要となります。ここの「バーチャル」というのは、ByteArrayクラスを使ってメモリ中に格納とすることです。サンプル中にはmx.graphics.codec.PNGEncoderを利用してバーチャルファイルを作成とします。
/* create virtual png file */
&#160;var png:ByteArray = ( new PNGEncoder() ).encode( bd );
最後はLoaderクラスでバーチャルファイルをロードします。下記のようなソースでロードを終了するとsaveContentToSWFメソッドが実行されます。
/* load virtual png image */
&#160;var l:Loader = new Loader();
&#160;l.contentLoaderInfo.addEventListener( Event.COMPLETE, saveContentToSWF [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe AIRアプリケーションにLoaderクラスを利用してロードされた画像ファイル、内部的に圧縮されたSWFファイルではなくて独自なフレームとして保存されます（そのような話について、正式なドキュメントとか資料はないようですが、誰か知ってるとぜひ教えていただきますね）。</p>
<p>BitmapDataをPNGやJPEGなどをエンコードして、loadBytesメソッドでLoaderにロードして、終わったらLoaderInfoクラスのbytesというプロパティでSWFに出力するようになります。そうする、SWFフォーマット画像ファイルをローカルに保存することをできました。注意しなければいけないのは、そのような操作はAdobe AIRだけです。ほかのウェブ系とかはいけないです。</p>
<p><span id="more-242"></span>
<p>下記はBitmapDataクラスからローカルswfファイルを生成／保存するメソッドです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/* create bitmap to be saved as an swf file */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">bd</span><span style="color: Gray;">:</span><span style="color: Teal;">BitmapData</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Teal;">BitmapData</span><span style="color: Olive;">(</span><span style="color: Maroon;">320</span><span style="color: Gray;">,</span><span style="color: Maroon;">240</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* capture application snapshot, this can be any other object */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bd</span><span style="color: Gray;">.</span><span style="color: Teal;">draw</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Teal;">Application</span><span style="color: Gray;">.</span><span style="color: Teal;">application</span><span style="color: Gray;"> </span><span style="color: Blue;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">IBitmapDrawable</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>作ったビットマップファイルをPNGやJPEGなどバーチャルファイルにエンコード処理を必要となります。ここの「バーチャル」というのは、ByteArrayクラスを使ってメモリ中に格納とすることです。サンプル中にはmx.graphics.codec.PNGEncoderを利用してバーチャルファイルを作成とします。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/* create virtual png file */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">png</span><span style="color: Gray;">:</span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">PNGEncoder</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">encode</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">bd</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>最後はLoaderクラスでバーチャルファイルをロードします。下記のようなソースでロードを終了するとsaveContentToSWFメソッドが実行されます。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: #ffa500;">/* load virtual png image */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">l</span><span style="color: Gray;">:</span><span style="color: Blue;">Loader</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">Loader</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">contentLoaderInfo</span><span style="color: Gray;">.</span><span style="color: Blue;">addEventListener</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">Event</span><span style="color: Gray;">.</span><span style="color: Blue;">COMPLETE</span><span style="color: Gray;">, </span><span style="color: Blue;">saveContentToSWF</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">l</span><span style="color: Gray;">.</span><span style="color: Blue;">loadBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">png</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div>
<p>以下はsaveContentToSWFメソッドソース：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">saveContentToSWF</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">event</span><span style="color: Gray;"> : </span><span style="color: Blue;">Event</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* create output file on desktop */</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: Blue;">File</span><span style="color: Gray;"> = </span><span style="color: Blue;">File</span><span style="color: Gray;">.</span><span style="color: Blue;">desktopDirectory</span><span style="color: Gray;">.</span><span style="color: Blue;">resolvePath</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">out.swf</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">fs</span><span style="color: Gray;">:</span><span style="color: Blue;">FileStream</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FileStream</span><span style="color: Olive;">()</span><span style="color: Gray;">; </span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Teal;">open</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">, </span><span style="color: Blue;">FileMode</span><span style="color: Gray;">.</span><span style="color: Blue;">WRITE</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* pull out SWF bytes from Loader */</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Blue;">writeBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">evt</span><span style="color: Gray;">.</span><span style="color: Teal;">target</span><span style="color: Gray;"> </span><span style="color: Blue;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">LoaderInfo</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">bytes</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Teal;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>上記のメソッドは圧縮してないswfファイルが生成されます。実際運用するとき、圧縮しないとサイズが大きいですから、圧縮処理を必要です。以下は圧縮機能を付けって保存メソッドです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">function</span><span style="color: Gray;"> </span><span style="color: Blue;">saveContentToSWF_compress</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">event</span><span style="color: Gray;"> : </span><span style="color: Blue;">Event</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">:</span><span style="color: Green;">void</span></li>
<li><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: Blue;">File</span><span style="color: Gray;"> = </span><span style="color: Blue;">File</span><span style="color: Gray;">.</span><span style="color: Blue;">desktopDirectory</span><span style="color: Gray;">.</span><span style="color: Blue;">resolvePath</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">out_c.swf</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">fs</span><span style="color: Gray;">:</span><span style="color: Blue;">FileStream</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">FileStream</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Teal;">open</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">file</span><span style="color: Gray;">, </span><span style="color: Blue;">FileMode</span><span style="color: Gray;">.</span><span style="color: Blue;">WRITE</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* compressed file header */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">swf_head</span><span style="color: Gray;"> : </span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">ByteArray</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_head</span><span style="color: Gray;">.</span><span style="color: Blue;">endian</span><span style="color: Gray;"> = </span><span style="color: Blue;">Endian</span><span style="color: Gray;">.</span><span style="color: Blue;">LITTLE_ENDIAN</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_head</span><span style="color: Gray;">.</span><span style="color: Blue;">writeBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">evt</span><span style="color: Gray;">.</span><span style="color: Teal;">target</span><span style="color: Gray;"> </span><span style="color: Blue;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">LoaderInfo</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">bytes</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">8</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_head</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Blue;">x43</span><span style="color: Gray;">; </span><span style="color: #ffa500;">// 'C' letter, indicates that file is compressed</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_head</span><span style="color: Gray;">.</span><span style="color: Teal;">position</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* compressed file body */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Green;">var</span><span style="color: Gray;"> </span><span style="color: Blue;">swf_body</span><span style="color: Gray;"> : </span><span style="color: Blue;">ByteArray</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">ByteArray</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_body</span><span style="color: Gray;">.</span><span style="color: Blue;">endian</span><span style="color: Gray;"> = </span><span style="color: Blue;">Endian</span><span style="color: Gray;">.</span><span style="color: Blue;">LITTLE_ENDIAN</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_body</span><span style="color: Gray;">.</span><span style="color: Blue;">writeBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">evt</span><span style="color: Gray;">.</span><span style="color: Teal;">target</span><span style="color: Gray;"> </span><span style="color: Blue;">as</span><span style="color: Gray;"> </span><span style="color: Blue;">LoaderInfo</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">bytes</span><span style="color: Gray;">, </span><span style="color: Maroon;">8</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_body</span><span style="color: Gray;">.</span><span style="color: Teal;">position</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_body</span><span style="color: Gray;">.</span><span style="color: Blue;">compress</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">swf_body</span><span style="color: Gray;">.</span><span style="color: Teal;">position</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: #ffa500;">/* write it down to file */</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Blue;">writeBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">swf_head</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Blue;">writeBytes</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">swf_body</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fs</span><span style="color: Gray;">.</span><span style="color: Teal;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">;</span></li></ol></div>
<p><strong>リソース：</strong></p>
<p><a title="http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&amp;postId=9364&amp;productId=2&amp;loc=en_US" href="http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&amp;postId=9364&amp;productId=2&amp;loc=en_US">http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&amp;postId=9364&amp;productId=2&amp;loc=en_US</a></p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/07/25/top-7-adobe-air-apps-for-videos-you-should-know.html" title="トップ７個アドビAIRビデオアプリケーション">トップ７個アドビAIRビデオアプリケーション</a></li>
<li><a href="http://digitechlog.com/2008/12/20/rich-internet-application-ria-runtime-adobe-air-15-linux-platform-is-relaeased.html" title="リッチインターネットアプリケーション (RIA) 実行環境「Adobe AIR 1.5」のLinux版を公開した">リッチインターネットアプリケーション (RIA) 実行環境「Adobe AIR 1.5」のLinux版を公開した</a></li>
<li><a href="http://digitechlog.com/2008/12/17/how-to-get-file-uri-in-adobe-air-install-path-with-source-code.html" title="Adobe AIRアプリケーションのインストールパスにファイルURIを取得するサンプルソースコード">Adobe AIRアプリケーションのインストールパスにファイルURIを取得するサンプルソースコード</a></li>
<li><a href="http://digitechlog.com/2008/11/22/encrypt-your-sqlite-database-in-adobe-air-15.html" title="Adobe AIR 1.5でSQLiteデータベースを暗号化とするサンプルソースコード">Adobe AIR 1.5でSQLiteデータベースを暗号化とするサンプルソースコード</a></li>
<li><a href="http://digitechlog.com/2008/11/04/the-list-of-adobe-air-social-network-application-tools.html" title="Adobe AIRソーシャル・ネットワーキング(Social Network Service: SNS)アプリケーションリスト">Adobe AIRソーシャル・ネットワーキング(Social Network Service: SNS)アプリケーションリスト</a></li>
<li><a href="http://digitechlog.com/2008/11/03/the-list-of-micrologging-like-twitter-adobe-air-application.html" title="Twitterなどマイクロブログイン(Microblogging)とコミュニケーションしやすいAdobe AIRアプリケーションリスト">Twitterなどマイクロブログイン(Microblogging)とコミュニケーションしやすいAdobe AIRアプリケーションリスト</a></li>
<li><a href="http://digitechlog.com/2008/10/29/the-list-of-photo-and-video-application-in-adobe-air.html" title="Adobe AIRマルチメディアアプリケーションツールリスト（写真とビデオなど）">Adobe AIRマルチメディアアプリケーションツールリスト（写真とビデオなど）</a></li>
<li><a href="http://digitechlog.com/2008/10/29/the-list-of-google-pruduct-in-adobe-air.html" title="Adobe AIRが使ったGoogle関係製品のリスト">Adobe AIRが使ったGoogle関係製品のリスト</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/01/16/the-tutorial-on-how-to-save-swf-file-from-an-image-bitmap-in-adobe-air.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

