<?xml version="1.0" encoding="UTF-8" ?>
	<rss version = "2.0"  xmlns:blogChannel="http://backend.userland.com/blogChannelModule">
		<channel>
			<title>Kerupani129 Project のブログ</title>
			<description>好きなもの：
プログラミング, カラオケ, アニメ, デ・ジ・キャラット, 東方project, ドクター・フー, 動植物・雨・川

e0f82fe45d6ecd0aa6dfe85a89ea4774dfb87901</description>
			<link>https://blogs.yahoo.co.jp/kerupani</link>
			<language>ja</language>
			<copyright>Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.</copyright>
		<image>
			<title>Kerupani129 Project のブログ</title>
			<url>https://s.yimg.jp/i/jp/blog/iym_img.gif</url>
			<description>好きなもの：
プログラミング, カラオケ, アニメ, デ・ジ・キャラット, 東方project, ドクター・フー, 動植物・雨・川

e0f82fe45d6ecd0aa6dfe85a89ea4774dfb87901</description>
			<link>https://blogs.yahoo.co.jp/kerupani</link>
		</image>
		<item>
			<title>ノスタルジア譜面 | Fly far bounce(Expert)</title>
			<description>&lt;h3&gt;ノスタルジア譜面 | Fly far bounce(Expert)&lt;/h3&gt;
&lt;div&gt;「音楽ゲーム」と聞くと何だか抵抗を感じますが、ノスタルジアは雰囲気が良い感じで、人目を気にせずプレイできますね (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;さて、もしかして、瞬発力がある音ゲーマーの方にはノスタルジアの譜面画像なんて不要なのかもしれませんが、自分はリズム感も弱く瞬発力も低いので、譜面画像で予習をしないと不安で仕方ありません…。&lt;/div&gt;
&lt;div&gt;そこで、とりあえずこの譜面画像を作成してみました (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;一曲作るだけでも大変でした…。複雑なリズムは全然ないのに、何しろ横の鍵盤数が多いので、実際にプレイするときはおおよその位置で良いにしろ、譜面画像となるとしっかり鍵盤 1 つずつ合わせないといけないので、とても時間がかかってしまいました… (汗&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;あと、今回はデザインを決めるという目的で、mspaint で地道にポチポチしてました (^^;&lt;/div&gt;
&lt;div&gt;今後は、ノスタルジア譜面画像作成用のソフトウェアでも作ろうかなと思います。&lt;/div&gt;
&lt;div&gt;左手のグリッサンドや、小節番号をどういうデザインにするかはまだ決めていません…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;さて、それでは譜面を載せます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;Fly far bounce(Expert)&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;カテゴリ: Org&lt;/div&gt;
曲名:&amp;nbsp;Fly far bounce
&lt;div&gt;タイプ: Expert&lt;/div&gt;
&lt;div&gt;アーティスト:&amp;nbsp;猫叉Master&lt;/div&gt;
&lt;div&gt;Level: 10&lt;/div&gt;
&lt;div&gt;Notes: 1038&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;font color=&quot;#ff0000&quot;&gt;※2017/03/30 グリッサンドとトリルのノートの色を変更しました&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div class=&quot; &quot; style=&quot;text-align:center;&quot;&gt;&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-85-31/kerupani/folder/594749/56/17837156/img_2_m?1491194611&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 2&quot; class=&quot;popup_img_2896_2104&quot; width=&quot;560&quot; height=&quot;407&quot; style=&quot;width:560px;height:407px;&quot;/&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
(↑拡大してご覧ください)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;※ズレは正確ではありません。&lt;/div&gt;
&lt;div&gt;&lt;font color=&quot;#ff0000&quot;&gt;※2017/04/03 追記&lt;/font&gt; スタンダードノートの左右色分けをしていません&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;雑談&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;ノスタルジアって譜面が立体的に飛んでくるので、8 分がズレてるのとか良く見ても分からないんですよね… (汗&lt;/div&gt;
&lt;div&gt;一応ライン撮り動画がネット上に上がっているので、フレーム数数えたりすればもっと正確な位置が分かるかもしれませんが、大変なのでとりあえずズレはテキトーに割り切れる位置にしてしまいました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;さて、さすがに自分一人でノスタルジアの譜面を作るわけにもいかないので、近いうちに譜面画像作成用の素材も配布しようと思います。あと、時間があれば作成ツールも作りたい…！！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;あと、早くノスタルジアの Wiki できないかな～って思いますね…。一から作るとなると、ページの作成や権限周りの設定が大変そうなので、自分はブログで譜面画像を投稿するのにとどめていますが… (^^;&lt;/div&gt;
&lt;div&gt;誰か作ってくれないかな～… (チラッ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…さて、今回のブログ記事はここぐらいまでにしておきます。&lt;/div&gt;
&lt;div&gt;またいつかお会いしましょう (^^&lt;/div&gt;
&lt;div&gt;ノシ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-85-31/kerupani/folder/594749/56/17837156/img_1_m?1491194611&quot; alt=&quot;&amp;#x0030a4;&amp;#x0030e1;&amp;#x0030fc;&amp;#x0030b8; 1&quot; class=&quot;popup_img_88_31&quot; width=&quot;88&quot; height=&quot;31&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17837156.html</link>
			<pubDate>Tue, 28 Mar 2017 19:38:16 +0900</pubDate>
			<category>ゲーム</category>
		</item>
		<item>
			<title>HSP | 日本語等も一文字として strlen, strmid</title>
			<description>&lt;h3&gt;HSP | 日本語等も一文字として strlen, strmid&lt;/h3&gt;
&lt;div&gt;タイトルの通りです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;HSP って、strlen や strmid は、日本語等は二文字 (というより本当はバイト単位) なんですよね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…もしかして、HSP しか使っていない人にとっては、日本語等が 2 文字扱いになるのに違和感を感じないかもしれませんが、他のプログラミング言語だと結構日本語が一文字扱いなのですよ (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;使い方にもよってですが、実際そのほうが使いやすかったり… (汗&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…というわけで、HSP でも日本語等を一文字扱いで、とりあえず strlen と strmid を対応しようと思います！！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;(他の文字列関係の命令・関数は文字数関係ないか、関係していても、基本的にプログラマが数値を指定するようなものではない (instr など、ループで回すだけ) ので、ここでは省略します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;コード&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;/**&lt;br&gt;
&amp;nbsp;* メイン&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 文字列の長さ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strlen_(&amp;quot;aiueo&amp;quot;)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strlen_(&amp;quot;あいうえお&amp;quot;)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strlen_(&amp;quot;aいuえo&amp;quot;)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 文字列の一部を取り出す&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, 2, 2)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, -1, 1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, -2, 2)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, -3, 1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, 0, -1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, 2, -1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, 3, -1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes strmid_(&amp;quot;aいuえo&amp;quot;, -3, -1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mes&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;stop&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 文字列の長さを調べる (日本語等も一文字)&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#defcfunc strlen_ str s&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;l = 0&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;sdim buf, strlen(s) * 2 + 2&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;cnvstow buf, s&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;repeat&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;if ( 0x0000 == wpeek(buf, cnt * 2) ) : break&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;l++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;loop&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return l&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 文字列の一部を取り出す (日本語等も一文字)&lt;br&gt;
&amp;nbsp;*&amp;nbsp;&lt;br&gt;
&amp;nbsp;* index がマイナスのときの挙動変更 (後ろからのインデックス)&lt;br&gt;
&amp;nbsp;* len &amp;nbsp; がマイナスのときの挙動変更 (後ろからのインデックス)&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#defcfunc strmid_ str s, int index, int len&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;sdim buf, strlen(s) * 2 + 2&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;cnvstow buf, s&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// インデックスを修正&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;if ( index &amp;gt;= 0 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;i = 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat index&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;if ( 0x0000 == wpeek(buf, cnt * 2) ) : break&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;i++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;i = 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;if ( 0x0000 == wpeek(buf, cnt * 2) ) : break&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;i++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;i = limit(i + index, 0, i)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;}&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 長さを修正&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;if ( len &amp;gt;= 0 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;l = 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat len, i&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;if ( 0x0000 == wpeek(buf, cnt * 2) ) : break&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;l++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;l = 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat , i&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;if ( 0x0000 == wpeek(buf, cnt * 2) ) : break&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;l++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;l = limit(l + len, 0, l)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;}&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 切り出し&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;memcpy buf, buf, l * 2, 0, i * 2&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;wpoke buf, l * 2, 0x0000&lt;br&gt;
	&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return cnvwtos(buf)&lt;/blockquote&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;使い方&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;基本的に元の&amp;nbsp;strlen,&amp;nbsp;strmid と使い方は同じです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ただし、strmid は一部仕様を変更しています。&lt;/div&gt;
&lt;div&gt;&lt;h4&gt;１．文字列を直接引数にとれるように&lt;/h4&gt;&lt;/div&gt;
&lt;div&gt;HSP 標準関数の strmid では文字列型「変数」を引数に渡すことを強制していますが、ここで作成したものに関しては、内部的にバッファを作ってそこで捜査していますし、そもそも元の変数の内容を変更するわけじゃないから、そもそも変数で渡す必要ないような…？　HSP での実装どうなってるんでしょう (^^;　(HSP のコード読めば分かるのですけどね&lt;/div&gt;
&lt;div&gt;&lt;h4&gt;２．インデックス、長さにマイナス値の指定&lt;/h4&gt;&lt;/div&gt;
&lt;div&gt;インデックス・長さがマイナスのときの挙動を、PHP の substr ライクにしてみました！！ (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…ただ、引数の省略の機能は省いています… (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;HSP で関数を #define してやればデフォルト引数指定できますが、数値しか渡せないとなると、わりと厄介なんですよね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;コードの説明&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;昔の HSP にはなかったような？ 気がするのですけど、標準命令・関数に、文字列を Unicode に変換するものがあったので、それを用いて数えます！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;… Unicode でも、文字よってバイト数が違うものがありますが、HSP のその変換する命令・関数のヘルプを見てみると、「外部DLL、 COMオブジェクトへのデータ変換などで使用することができます」と書いてあるあたり、Windows の API でよく使用されるワイド文字で、2 バイト固定という認識でおそらく大丈夫…ですよね？？　たぶん…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;というわけで、あとは、一文字 2 バイトという過程でごにょごにょしてます (説明がテキトー (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;(詳しくはソースコード参照&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;Unicode 文字列に変換するさいにバッファのサイズが足りないとマズいのですが、最低限、通常の strlen でえられる長さの倍あれば足りるでしょう。　(ヌル文字も考慮してプラス 2 バイト)&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;雑談&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;バイト数で取得していると、基本的に全角文字が 2 文字あつかいになって嬉しい、という意見もあるかもしれないですが、等幅じゃないとその数値役に立たないですし、そもそも半角カタカナが 2 バイトという罠があったりして、あまり実用的でないような… (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;やっぱり、HSP 標準の strlen は文字列の長さというより単なるバイト数として使用すべきですね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;では、またいつかお会いしましょう！ (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ノシ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17769972.html</link>
			<pubDate>Sat, 11 Feb 2017 14:36:48 +0900</pubDate>
			<category>プログラム</category>
		</item>
		<item>
			<title>HSP | 透過 PNG で gmode 7 する (その２)</title>
			<description>&lt;h3&gt;HSP | 透過 PNG で gmode 7 する (その２)&lt;/h3&gt;
&lt;div&gt;前回の記事: 「&lt;a href=&quot;http://blogs.yahoo.co.jp/kerupani/17745612.html&quot; target=&quot;_blank&quot;&gt;HSP | 透過 PNG で gmode 7 する&lt;/a&gt;」&lt;/div&gt;
&lt;div&gt;参考にした元のプログラム: 「&lt;a href=&quot;http://fe0km.blog.fc2.com/blog-entry-45.html&quot; target=&quot;_blank&quot;&gt;なんだか雲行きの怪しい雑記帖 HSPのPNG読み込みからgmode7で使える形式に&lt;/a&gt;」&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;前回はアレで満足してしまったのですが、後になって色々考えてみたら、もっとプログラムを簡単に、しかも処理速度を速くできることに気が付いてしまったので「その２」として書きます (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;前の記事を修正するだけで済ませようかとも思いましたが、かなり大部分が書き変わっていて、前の記事の大部分を直さないといけなくなりそうだったので、別記事にすることにしました (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;モジュール&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;主に「#deffunc local draw」の中身が書き変わりました&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;/**&lt;br&gt;
&amp;nbsp;* モジュール&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#module Pixela&lt;br&gt;
&lt;br&gt;
//&amp;nbsp;&lt;br&gt;
// フィールド&lt;br&gt;
//&amp;nbsp;&lt;br&gt;
#define global picload_pixela(%1) picload_pixela@Pixela %1&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 画像ファイルをピクセルアルファブレンドコピーに対応させて読み込み&lt;br&gt;
&amp;nbsp;*&amp;nbsp;&lt;br&gt;
&amp;nbsp;* gmode 7&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local picload_pixela str fname&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;load@Pixela fname&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;draw@Pixela&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 画像読み込み&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local load str fname&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 出力ウィンドウ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_PIXELA = ginfo_sel&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 背景黒バッファ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_BG_BLACK = ginfo_newid&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;buffer BUFFER_ID_BG_BLACK&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;picload fname, 2&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;/* 画像サイズ取得 */&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;img_height = ginfo_winy&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;img_width &amp;nbsp;= ginfo_winx&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 背景白バッファ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_BG_WHITE = ginfo_newid&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;buffer BUFFER_ID_BG_WHITE, img_width, img_height&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;pos 0, 0 : picload fname, 1&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 出力ウィンドウ 初期化&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;type = ginfo_type(BUFFER_ID_PIXELA)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;if ( type == 1 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;buffer BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else : if ( type == 2 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;screen BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else : if ( type == 3 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;bgscr &amp;nbsp;BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;}&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* ウィンドウの種類取得&lt;br&gt;
&amp;nbsp;*&amp;nbsp;&lt;br&gt;
&amp;nbsp;* 1 = buffer, 2 = screen, 3 = bgscr&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#defcfunc local ginfo_type int id&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref bmscr, 96 + id // mref bmscr, 67&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return bmscr.17&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* RGBA を計算し出力&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local draw&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gsel BUFFER_ID_PIXELA&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref img_rgba, 66&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// アルファ値&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gmode 6, , , 256&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;pos img_width, 0 : gcopy BUFFER_ID_BG_WHITE, 0, 0, img_width, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gmode 5, , , 256&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;pos img_width, 0 : gcopy BUFFER_ID_BG_BLACK, 0, 0, img_width, img_height&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// RGB&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gmode 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;pos 0, 0 : gcopy BUFFER_ID_BG_BLACK, 0, 0, img_width, img_height // VRAM のインデックス算出高速化のためにもコピー&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;index = 0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;index_width = img_width * 3&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;repeat img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat img_width * 3&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;alpha = peek(img_rgba, index + index_width)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;if ( alpha ) : poke img_rgba, index, 255 * peek(img_rgba, index) / alpha&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;index++&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;index += index_width&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;loop&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
#global&lt;/blockquote&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;※サンプルはそのまま&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;変更点１．アルファ値を、HSP の標準機能の加算合成・減算合成を用いて算出&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;アルファ値の算出の式、よく見たら、「白」に「黒背景画像」を減産合成して「白背景画像」を加算合成してるのと同じじゃないですかっ！ (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;というわけで、gmode, gcopy だけでアルファ値を算出できます。&lt;/div&gt;
&lt;div&gt;HSP の内部での処理に任せた方が断然速いです！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;変更点２．RGB 値算出時に、アルファ値 (正規化はしない) を使用&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;前回の記事で「アルファ値を用いなくても RGB を算出できます」と書きましたが、よく見たら、アルファ値の算出式と全く同じものを書いていました (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ただ、やはり正規化しても処理時間が遅くなるのと、アルファ値を使うにしても、「黒背景画像」に除算をかけるだけで済みます。&lt;/div&gt;
&lt;div&gt;…参考にした元のプログラムだと、わざわざ「黒背景画像」と「白背景画像」を加算合成しているのですけど、これ意味ないですよね… (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;変更点３．アルファ値 0 の対応&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;HSP の gcopy の加算・減算合成の誤差？？のせいで、アルファ値 0 のパターンがテストできなかったのですが、本来はあるはずなので、アルファ値が 0 の場合は、「黒背景画像」をそのまま残すこととしました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;アルファ値 0 のとき、元の色が算出できないわけですが、そもそも表示されないので何色でもいいですね。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;変更点その他&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;このプログラムを見ただけだと勘違いしやすいですが、画像の下から上に RGB 値を計算していってます。上から下ではありません (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;また、「黒背景画像」を一回出力画面にコピーしているのですが、これをしなくても直接 VRAM から色を取得しても良いのですが、画像の横幅が出力画面と異なるため、VRAM のインデックスを別に計算しなければいけなくなり、処理時間が余計にかかるので、gcopy の速度を信じて一回コピーすることにしました (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;雑談&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;もしかしたらまだ何か間違ってるかもしれません…。&lt;/div&gt;
&lt;div&gt;アルファ値ズレてるし…なんでだろ？？&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…また機会があれば調べてみます (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div&gt;それではまたいつか～ ノシ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17748289.html</link>
			<pubDate>Fri, 27 Jan 2017 21:11:49 +0900</pubDate>
			<category>プログラム</category>
		</item>
		<item>
			<title>HSP | 透過 PNG で gmode 7 する</title>
			<description>&lt;h3&gt;※大幅に修正したものを別記事にしました&lt;/h3&gt;
&lt;div&gt;あまりにも修正したので別記事にしましたが、この記事はこの記事で何かの役に立つと思うので残しておきます (^^;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.yahoo.co.jp/kerupani/17748289.html&quot; target=&quot;_blank&quot;&gt;HSP | 透過 PNG で gmode 7 する (その２)&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;h3&gt;HSP | 透過 PNG で gmode 7 する&lt;/h3&gt;
&lt;div&gt;gmode 7 (ピクセルアルファブレンドコピー) は、アルファ値がない画像と、アルファ値だけの画像を横に並べると、そのアルファ値通りに画像合成ができるという代物です。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;HSP はいつからか PNG 読み込みができるようになりました！&lt;/div&gt;
&lt;div&gt;…が、読み込んだ後に透過を上手く扱う手段が (標準機能では) 実装されていない…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;そこで、まずはググります！&lt;/div&gt;
&lt;div&gt;とりあえず検索の上位に出てきたのは以下のようなもの。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;1.&amp;nbsp;&lt;a href=&quot;http://d.hatena.ne.jp/As_hsp/20091213/1260714763&quot; target=&quot;_blank&quot;&gt;HSP gmode 7用 アルファブレンド画像作成モジュール - AkicanBlog&lt;/a&gt;&lt;br&gt;
COM オブジェクトと GDI の API を用いて実装されている。&lt;br&gt;
おそらく HSP が PNG 未対応時代の代物。&lt;br&gt;
PNG ファイルフォーマットを解析して描画 (デコードは COM オブジェクトまかせ)。&lt;br&gt;
&lt;br&gt;
2.&amp;nbsp;&lt;a href=&quot;http://www.tvg.ne.jp/menyukko/cauldron/hmimage.html&quot; target=&quot;_blank&quot;&gt;HSP用 画像関連モジュール - 略して仮。&lt;/a&gt;&lt;br&gt;
DLL 色々呼んでます。めっちゃ高機能！&lt;br&gt;
&lt;br&gt;
3.&amp;nbsp;&lt;a href=&quot;http://fe0km.blog.fc2.com/blog-entry-45.html&quot; target=&quot;_blank&quot;&gt;なんだか雲行きの怪しい雑記帖 HSPのPNG読み込みからgmode7で使える形式に&lt;/a&gt;&lt;br&gt;
標準機能だけを用いてアルファ値と色を算出。&lt;br&gt;
※今回のプログラムの参考とさせていただきました。&lt;br&gt;
&lt;br&gt;
4.&amp;nbsp;&lt;a href=&quot;https://dev.onionsoft.net/seed/info.ax?id=122&quot; target=&quot;_blank&quot;&gt;PNG2Gmode7 - SoupSeed&lt;/a&gt;&lt;br&gt;
何か良く分からないけど、作成者曰く、色が微妙に変わってしまうバグがあるそうなので&lt;span style=&quot;font-size:1em;&quot;&gt;ボツ。&lt;/span&gt;&lt;/blockquote&gt;
1 や 2 でも手ごろで良かったのですが、他のプラットフォームに移植することなどを考えると、なるべく標準命令だけで実装したほうがいいかな～とか考えてしまって、3 を使うことにしました (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ただ、 3 はモジュール化されていなかったので、モジュール化したのと、速度が遅かったので、なるべく速くしようとプログラムを書き替えていたら、大幅にプログラムが書き変わったので、ここに載せようと思います (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;ソースコード&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;※簡単のため、インクルードガートがないのと、モジュール名がテキトーです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;/**&lt;br&gt;
&amp;nbsp;* モジュール&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#module Pixela&lt;br&gt;
&lt;br&gt;
//&amp;nbsp;&lt;br&gt;
// フィールド&lt;br&gt;
//&amp;nbsp;&lt;br&gt;
#define global picload_pixela(%1) picload_pixela@Pixela %1&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 画像ファイルをピクセルアルファブレンドコピーに対応させて読み込み&lt;br&gt;
&amp;nbsp;*&amp;nbsp;&lt;br&gt;
&amp;nbsp;* gmode 7&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local picload_pixela str fname&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;load@Pixela fname&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;draw@Pixela&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* 画像読み込み&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local load str fname&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 出力ウィンドウ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_PIXELA = ginfo_sel&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 背景黒バッファ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_BG_BLACK = ginfo_newid&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;buffer BUFFER_ID_BG_BLACK&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;picload fname, 2&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;/* 画像サイズ取得 */&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;img_height = ginfo_winy&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;img_width &amp;nbsp;= ginfo_winx&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 背景白バッファ&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;BUFFER_ID_BG_WHITE = ginfo_newid&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;buffer BUFFER_ID_BG_WHITE, img_width, img_height&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;pos 0, 0 : picload fname, 1&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;// 出力ウィンドウ 初期化&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;type = ginfo_type(BUFFER_ID_PIXELA)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;if ( type == 1 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;buffer BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else : if ( type == 2 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;screen BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;} else : if ( type == 3 ) {&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;bgscr &amp;nbsp;BUFFER_ID_PIXELA, img_width * 2, img_height&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;}&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* ウィンドウの種類取得&lt;br&gt;
&amp;nbsp;*&amp;nbsp;&lt;br&gt;
&amp;nbsp;* 1 = buffer, 2 = screen, 3 = bgscr&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#defcfunc local ginfo_type int id&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref bmscr, 96 + id // mref bmscr, 67&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return bmscr.17&lt;br&gt;
&lt;br&gt;
/**&lt;br&gt;
&amp;nbsp;* RGBA を計算し出力&lt;br&gt;
&amp;nbsp;*/&lt;br&gt;
#deffunc local draw&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gsel BUFFER_ID_BG_BLACK&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref img_bgblack, 66&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gsel BUFFER_ID_BG_WHITE&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref img_bgwhite, 66&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;gsel BUFFER_ID_PIXELA&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;mref img_rgba, 66&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;repeat img_height : y = cnt&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;index_height = img_width * (img_height - 1 - y)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;repeat img_width : x = cnt&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;// VRAM インデックス&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;index &amp;nbsp;= (index_height &amp;nbsp; &amp;nbsp; + x &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) * 3 // 背景黒・白&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;index2 = (index_height * 2 + x &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;) * 3 // RGB&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;index3 = (index_height * 2 + x + img_width) * 3 // alpha&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;// 色取得 (配列にすると 15% ほど遅くなる HSP ver.3.4)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;black_r = peek(img_bgblack, index + 2)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;black_g = peek(img_bgblack, index + 1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;black_b = peek(img_bgblack, index + 0)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;white_r = peek(img_bgwhite, index + 2)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;white_g = peek(img_bgwhite, index + 1)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;white_b = peek(img_bgwhite, index + 0)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;// RGB 出力&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index2 + 2, 255 * black_r / (255 - white_r + black_r)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index2 + 1, 255 * black_g / (255 - white_g + black_g)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index2 + 0, 255 * black_b / (255 - white_b + black_b)&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;// alpha 出力&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;alpha = 255 - white_r + black_r&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index3 + 2, alpha&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index3 + 1, alpha&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;			&lt;/span&gt;poke img_rgba, index3 + 0, alpha&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;		&lt;/span&gt;loop&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;loop&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;return&lt;br&gt;
&lt;br&gt;
#global&lt;/blockquote&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;div&gt;&lt;h3&gt;サンプル&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;// ファイル選択&lt;br&gt;
dialog &amp;quot;png&amp;quot;, 16, &amp;quot;png file!&amp;quot;&lt;br&gt;
if ( stat == 0 ) : end&lt;br&gt;
fname = refstr&lt;br&gt;
&lt;br&gt;
// ファイル読み込み&lt;br&gt;
buffer 1&lt;br&gt;
picload_pixela fname&lt;br&gt;
&lt;br&gt;
img_width &amp;nbsp;= ginfo_winx / 2&lt;br&gt;
img_height = ginfo_winy&lt;br&gt;
&lt;br&gt;
// 描画&lt;br&gt;
gsel 0&lt;br&gt;
gmode 7&lt;br&gt;
&lt;br&gt;
redraw 0&lt;br&gt;
&lt;br&gt;
/* 左上: 背景黒 */&lt;br&gt;
color 0, 0, 0 : boxf 0, 0, img_width - 1, img_height - 1&lt;br&gt;
pos 0, 0 : gcopy 1, 0, 0, img_width, img_height&lt;br&gt;
&lt;br&gt;
/* 右上: 背景白 */&lt;br&gt;
color 255, 255, 255 : boxf img_width, 0, img_width * 2 - 1, img_height - 1&lt;br&gt;
pos img_width, 0 : gcopy 1, 0, 0, img_width, img_height&lt;br&gt;
&lt;br&gt;
/* 左下: 背景赤 */&lt;br&gt;
color 255, 0, 0 : boxf 0, img_height, img_width - 1, img_height * 2 - 1&lt;br&gt;
pos 0, img_height : gcopy 1, 0, 0, img_width, img_height&lt;br&gt;
&lt;br&gt;
/* 右下: 背景青 */&lt;br&gt;
color 0, 0, 255 : boxf img_width, img_height, img_width * 2 - 1, img_height * 2 - 1&lt;br&gt;
pos img_width, img_height : gcopy 1, 0, 0, img_width, img_height&lt;br&gt;
&lt;br&gt;
redraw&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;主な変更点&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;・未使用ウィンドウを処理中のバッファに使うように変更&lt;/div&gt;
&lt;div&gt;モジュールなので、既に使用中のバッファを上書きしてしまったら問題ですもんね…。&lt;/div&gt;
&lt;div&gt;本当は使用後に開放したいですが、現時点の HSP だとムリなようです… (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・配列変数に代入せず、直接 VRAM に読み書きするよう変更&lt;/div&gt;
&lt;div&gt;これが今回大きな効果がありました！！&lt;/div&gt;
&lt;div&gt;後に詳しく書きます…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・アルファ値を正規化しないよう変更&lt;/div&gt;
&lt;div&gt;結局は 0 ～ 255 で出力するのですから、0.0 ～ 1.0 にする必要はないでしょう (おそらく) 。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・色 (RGB) の算出式を変更&lt;/div&gt;
&lt;div&gt;なぜか元のプログラムでは、正規化したアルファ値を利用して RGB を求めているのですが、連立二次方程式で求めるのですから、アルファ値を用いなくても RGB を算出できます。&lt;/div&gt;
&lt;div&gt;というわけで変更！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・その他、不要な関数を削除&lt;/div&gt;
&lt;div&gt;abs や limit を用いて数を調整しているところがあったのですが、正しい値が入力されていれば、負になったり値が範囲外になったりしないはずなので削除 (カンタンに証明できます)。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・(サンプルで) redraw の追加&lt;/div&gt;
&lt;div&gt;redraw を使うと、pset, pget を使う場合でもかなり速くなります！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;・その他、数式を一回変数に代入&lt;/div&gt;
&lt;div&gt;HSP はもともと速度が遅い言語なので、これをするだけでも目に見えるぐらい速くなりました！ (^^;&lt;/div&gt;
&lt;div&gt;もっと弄れば速くできるかも？？&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;あと、本質的ではないですが、サンプルの boxf の範囲がズレていたので直しました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;「配列変数に代入せず、直接 VRAM に読み書きするよう変更」&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;これをする前に、色々な状況を想定して実際にコードを書き、実行時間を測定しました！&lt;/div&gt;
&lt;div&gt;(ただし、かなりテキトーな計測だったので、数値は割愛します (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;以下のパターンを想定しました。&lt;/div&gt;
&lt;div&gt;&lt;ol&gt;&lt;li&gt;配列変数を用いて一括 pset, pget&lt;/li&gt;
&lt;li&gt;地道に pset, pget&lt;/li&gt;
&lt;li&gt;VRAM 直接アクセス&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;div&gt;結論から言いますと、上の方が遅く、下の方が速いです。&lt;/div&gt;
自分のプログラムでは、元のプログラムより 5 倍ぐらい速くなりました！ (数式の変更なども含めて)
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;元のソースコードのコメントを見ると、「// 処理用ばっふぁ、いちいちpgetが面倒なので」とあるのですが、「いちいちpget」の方が速いです (^^;&lt;/div&gt;
&lt;div&gt;gsel は第二引数を指定しなければ、内部的に操作先のウィンドウ ID を変更するだけなので、地道にウィンドウ (バッファ) を切り替えて処理してもあまり処理時間は変わらなかったです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;問題は、「配列変数」を用いていることでした！&lt;/div&gt;
&lt;div&gt;HSP の配列変数ってスゴく遅いのですよ…あまりにも遅いので、軽くですが検証までしてしまいました…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogs.yahoo.co.jp/kerupani/17745549.html&quot; target=&quot;_blank&quot;&gt;HSP | 配列変数が「遅い」&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;特に読み込みがとんでもなく遅いようです。&lt;/div&gt;
&lt;div&gt;なので、「いちいちpget」の方が速いのですね。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…が、最終的には、VRAM に直接アクセスするのが一番速かったです (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;HSP のことなので、poke や peek すら遅かったり、どっちかが極端に遅かったりするんじゃないかと思いましたが、配列変数を用いて代入するより速かったです…。配列変数の代入より命令 (関数) の方が速いとはなんのこっちゃ (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;本当はシフト演算を用いて一括代入した場合なども検証してみたかったのですが、時間なかったのでこの状態でブログに投下します…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;誤差&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;自分のプログラムでは正規化したアルファ値を用いず、すべて整数で処理しているので、誤差が気になります… (^^;&lt;/div&gt;
&lt;div&gt;主に割り算がある場所ですね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;自分のプログラムで割り算を行っているのは、「RGB」を算出しているところだけです。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;poke img_rgba, index2 + 2, 255 * black_r / (255 - white_r + black_r)&lt;/blockquote&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;足し算引き算をした後、一回割り算を行い、それを色の値として出力しています。&lt;/div&gt;
&lt;div&gt;割り切れなかった場合切り下げが起きます。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;PNG ファイルフォーマットをちゃんと調べていないのですが、画像ファイルだしおそらくアルファ値も 0 ～ 255 で格納してますよね？？&lt;/div&gt;
&lt;div&gt;と、仮定すると、この値は絶対割り切れるはずなのです！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…が、そう上手くいくわけないんですよね (^^;&lt;/div&gt;
&lt;div&gt;PNG 読み込み時の、「白背景」でも、内部的に割る処理がなされていて、誤差が出ます。これはどうしようもないですね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;せめて、このプログラムで、四捨五入すべきかもしれません…。&lt;/div&gt;
&lt;div&gt;正規化はせずに (0 ～ 255 のまま) double にキャスト、0.5 プラス、int にキャスト…。&lt;/div&gt;
&lt;div&gt;今回はとりあえず省略します。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;雑談&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;透過 PNG をいじるツールが作りたいなーと思ってこれを作ったのですが、最近何かと忙しいので、これだけブログに投下して終わるかも (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…いや、なるべく作るように頑張ります！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ではまたいつか～ ノシ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17745612.html</link>
			<pubDate>Wed, 25 Jan 2017 22:04:36 +0900</pubDate>
			<category>練習用</category>
		</item>
		<item>
			<title>HSP | 配列変数が「遅い」</title>
			<description>&lt;h3&gt;HSP | 配列変数が「遅い」&lt;/h3&gt;
&lt;div&gt;ものスゴい久しぶりに HSP をいじってみました (^^&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ちょっと、カンタンな画像処理をするツールが欲しくなったので、HSP で作ろうかと思ったのですが…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;b&gt;色の情報を配列に入れてから一括で処理すると、とても遅くなるのです。&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;そこで、配列変数の読み書き速度を測ってみました！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;(※ HSP ver.3.4 で確認&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;読み込み&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;#include &amp;quot;kernel32.as&amp;quot;&lt;br&gt;
&lt;br&gt;
// 配列 (一括)&lt;br&gt;
GetTickCount&lt;br&gt;
s = stat&lt;br&gt;
&lt;br&gt;
repeat 1000000&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;c = 0xFF, 0xFF, 0xFF&lt;br&gt;
loop&lt;br&gt;
&lt;br&gt;
GetTickCount&lt;br&gt;
e = stat&lt;br&gt;
&lt;br&gt;
mes &amp;quot;&amp;quot; + (e - s) + &amp;quot; ms&amp;quot;&lt;br&gt;
&lt;br&gt;
// 配列 (別々)&lt;br&gt;
GetTickCount&lt;br&gt;
s = stat&lt;br&gt;
&lt;br&gt;
repeat 1000000&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;c.0 = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;c.1 = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;c.2 = 0xFF&lt;br&gt;
loop&lt;br&gt;
&lt;br&gt;
GetTickCount&lt;br&gt;
e = stat&lt;br&gt;
&lt;br&gt;
mes &amp;quot;&amp;quot; + (e - s) + &amp;quot; ms&amp;quot;&lt;br&gt;
&lt;br&gt;
// 配列を使わない&lt;br&gt;
GetTickCount&lt;br&gt;
s = stat&lt;br&gt;
&lt;br&gt;
repeat 1000000&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;r = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;g = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;b = 0xFF&lt;br&gt;
loop&lt;br&gt;
&lt;br&gt;
GetTickCount&lt;br&gt;
e = stat&lt;br&gt;
&lt;br&gt;
mes &amp;quot;&amp;quot; + (e - s) + &amp;quot; ms&amp;quot;&lt;/blockquote&gt;
(※簡単のため、変数名やループが手抜きですが許してください (^^;&lt;/div&gt;
&lt;div&gt;(※最初の変数初期化にかかる時間もここでは無視します。一回しか起きないので…。&lt;/div&gt;
(いつもはちゃんと変数名付けてますよっ！！
&lt;div&gt;&lt;br&gt;
&lt;div&gt;自分の環境では&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote2&quot;&gt;78 ms&lt;br&gt;
234 ms&lt;br&gt;
135 ms&lt;/blockquote&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;となりました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;「あれ？配列の方が早い？？」&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;自分は一括代入を使っていたので、この結果を見ると早くなるはず！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;じゃあ書き込みか！！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;書き込み&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;計測の都合上、読み書き一回ずつ合わせて時間を測ります。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote3&quot;&gt;#include &amp;quot;kernel32.as&amp;quot;&lt;br&gt;
&lt;br&gt;
// 配列&lt;br&gt;
GetTickCount&lt;br&gt;
s = stat&lt;br&gt;
&lt;br&gt;
repeat 1000000&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;c = 0xFF, 0xFF, 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = c.0&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = c.1&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = c.2&lt;br&gt;
loop&lt;br&gt;
&lt;br&gt;
GetTickCount&lt;br&gt;
e = stat&lt;br&gt;
&lt;br&gt;
mes &amp;quot;&amp;quot; + (e - s) + &amp;quot; ms&amp;quot;&lt;br&gt;
&lt;br&gt;
// 配列を使わない&lt;br&gt;
GetTickCount&lt;br&gt;
s = stat&lt;br&gt;
&lt;br&gt;
repeat 1000000&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;r = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;g = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;b = 0xFF&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = r&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = g&lt;br&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre;&quot;&gt;	&lt;/span&gt;x = b&lt;br&gt;
loop&lt;br&gt;
&lt;br&gt;
GetTickCount&lt;br&gt;
e = stat&lt;br&gt;
&lt;br&gt;
mes &amp;quot;&amp;quot; + (e - s) + &amp;quot; ms&amp;quot;&lt;/blockquote&gt;&lt;/div&gt;
&lt;div&gt;結果は&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;blockquote class=&quot;quote2&quot;&gt;344 ms&lt;br&gt;
297 ms&lt;/blockquote&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;となりました。やっぱり配列の読み込みが遅い！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;h3&gt;まとめ&lt;/h3&gt;&lt;/div&gt;
&lt;div&gt;ものスゴく内容薄い記事になってしまいました (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…が、あるプログラム (を書いてる人) にとっては、役に立つと思います。…そう願いたいです (^^;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ここでの結果を信用すると、一回ずつ読み書きするだけでも元がとれませんし、変数でわざわざ置いているという事は何回も値を読み込むことを想定していると思うので、さらに時間がかかってしまいます…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;「配列を使うな」とまで言ってしまうと、かなりプログラミングが辛くなるのでそこまで言えませんが、パッと見、配列でなくても良い・簡単にソースコードを書き換えられる・配列でなくともソースコードがそんなに汚くならない場合などは配列を使わないほうが良さそうです！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ではまたいつか ノシ&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17745549.html</link>
			<pubDate>Wed, 25 Jan 2017 21:28:15 +0900</pubDate>
			<category>プログラム</category>
		</item>
		<item>
			<title>詩 | 夢でいっぱいの世界</title>
			<description>&lt;h3&gt;詩 | 夢でいっぱいの世界&lt;/h3&gt;
&lt;div&gt;きっとキミは、、「こいつ、夢ばっかり見て、夢のない世界を知らないんだな…」と、思ってるのかもしれないね…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;違うよ…私だって、この世界に夢がないものがあることは分かってる。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;でも、だからこそ夢を追いかけたいの。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;夢がないものが存在することは理屈では分かっていて、でも、それを受け入れたくないの。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;いままで、キミと私は、同じ「夢でいっぱいの世界」にいると思っていた。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…でも、実際にその世界にいたのは、私一人。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;「夢でいっぱいの世界」&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;それは、夢のない世界と&lt;span style=&quot;text-indent:-18px;&quot;&gt;対称&lt;/span&gt;的なところに、確かに存在する世界。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;キミは「そんなものは存在しない」と言うかもしれないけど、確かに存在する世界。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;その世界の存在を信じてる、とかじゃなくて、確かに存在するその世界の在処を、私は知ってる…！！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17736827.html</link>
			<pubDate>Thu, 19 Jan 2017 23:14:28 +0900</pubDate>
			<category>詩</category>
		</item>
		<item>
			<title>詩 | 自分の心を傷つけたその人は</title>
			<description>&lt;h3&gt;詩 | 自分の心を傷つけたその人は&lt;/h3&gt;
&lt;div&gt;今日、自分はある人に心を傷つけられました。&lt;/div&gt;
&lt;div&gt;自分がとても好きなものを、理由付きで長々と否定されました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;でも、はずかしながら、自分も同じことを他の人にしてしまったことがあるのです。&lt;/div&gt;
&lt;div&gt;あぁ、この人も自分も同じなんだな、と思い、その人を許すと同時に、自分は二度とこういうことをしてはならないと固く誓いました。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;ニコニコしながら他の人を否定する発言を平気でするような人はまた別ですが、その人はとても辛そうでした。&lt;/div&gt;
&lt;div&gt;自分が好きなものを辛そうに否定されるのもこちらとしては嫌な訳ですが、その人はその人でとても辛く、こちらに感情をぶつけなければ気が済まなかったのでしょう。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;相手に負の感情をぶつけること、簡単な例では、怒ること。&lt;/div&gt;
&lt;div&gt;それは、ほぼ無意味なことだと思うのです。&lt;/div&gt;
&lt;div&gt;でも、それを相手に求めるべきではありません。相手は自分ではないのですから。&lt;/div&gt;
&lt;div&gt;それと同時に、自分は、怒ってる人に対して怒り返してはならないと思います。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;もちろん、理由によっては正当に怒って良い場合もあるでしょう。&lt;/div&gt;
&lt;div&gt;しかし、怒ってきた相手に直接起こり返すのは無意味。「怒りのループ」を生むだけ。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;もちろん、我慢することが異常なまでに多いなら、具体的に別の対処が必要でしょう。&lt;/div&gt;
&lt;div&gt;しかし、それがたまたま怒っただけなら、まっすぐ受け止めてあげましょう。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;それが、自分が一番悲しまないための近道――&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; style=&quot;font-size:12.0012px;background-color:rgb(255, 255, 255);&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17736760.html</link>
			<pubDate>Thu, 19 Jan 2017 22:23:16 +0900</pubDate>
			<category>詩</category>
		</item>
		<item>
			<title>詩 | 伝えること</title>
			<description>&lt;h3&gt;詩 | 伝えること&lt;/h3&gt;
&lt;div&gt;他人を理解すること。&lt;/div&gt;
&lt;div&gt;他人に伝えること。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;どちらも大切なことで、例え相手がそれらをしようとしなくてもするべき。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…でも、それはとてもつらいことだった。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;「相手を理解しなくていい」と考える人を理解することはできなかった。&lt;/div&gt;
&lt;div&gt;…そういう人には何を言っても伝わらないんだろうな…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;相手に本当に何かを伝えたいなら、それ相応の努力が必要。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;そのために、絵を描いたり、メロディーを作ろうとしてみたり…色々してみたよ。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;でも、自分の力が足りなくて、未だに本当に伝えたいものを伝えられずにいる自分。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;たとえ正しいことを言っていても、それが心から伝わらないと意味がないんだなぁって。&lt;/div&gt;
&lt;div&gt;自分は本気で言ってるのに、相手は冗談半分にしか聞いててくれてないんだなぁって。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;本当に素晴らしいものというのは、それに興味がなかった人さえも取り込んでしまう、そういうものだと思う。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;理解しようとしない人にすら伝えられる、そういうものを作れるようになりたい…！！&lt;/div&gt;
&lt;div&gt;自分が本当に思っていることを伝えたくて――&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17699198.html</link>
			<pubDate>Wed, 28 Dec 2016 01:50:26 +0900</pubDate>
			<category>詩</category>
		</item>
		<item>
			<title>詩 | 理解すること</title>
			<description>&lt;h3&gt;詩 | 理解すること&lt;/h3&gt;
&lt;div&gt;他人を理解すること。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…それは、小さな子供でも習う、ごく基本的なこと。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;相手が自分と違うことを考えている、自分と違う好みを持っている。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;もしかしたら、自分がまだ知らない「それ」が、自分をより理想的にする何かかもしれない…！&lt;/div&gt;
&lt;div&gt;理解しなければ…！！&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…頑張ったよ。&lt;/div&gt;
&lt;div&gt;でももう…十分すぎる程に理解してきたと思う。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;狭い世界しか見えない人になりたくなくて、どこまでも広い世界を見てきた。&lt;/div&gt;
&lt;div&gt;でも、あまりにも広い世界を見すぎて、自分の力が追いつかなくなった…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;とりあえず、今は狭い世界で休んでいます。&lt;/div&gt;
&lt;div&gt;また広い世界へ行くことを夢見て――&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17699187.html</link>
			<pubDate>Wed, 28 Dec 2016 01:22:59 +0900</pubDate>
			<category>詩</category>
		</item>
		<item>
			<title>詩 | 理想的な人でありたかった</title>
			<description>&lt;h3&gt;詩 | 理想的な人でありたかった&lt;/h3&gt;
&lt;div&gt;理想的な人でありたかった。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;自分を自分にとっての理想的な人にすることで、もう一人の理想的な自分に出会えると思った。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;実際に自分は理想的だった…たぶん。&lt;/div&gt;
&lt;div&gt;…でも、それを守り続けることができなかった…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;例え子供っぽい幻想だと思われようとも、たくさんの人を幸せにする、そんな生き方がしてみたかった。&lt;/div&gt;
&lt;div&gt;もちろん、自分が不幸にならない範囲で…ね？？&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;でも、弱い自分はそれができなかった…。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;一回失敗したぐらいで…と、思いたいところだけど、その一回の失敗で、取り戻せない何かを失うこともある。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;…&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;他人に理想を求めること。&lt;/div&gt;
&lt;div&gt;自分に理想を求めること。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;どちらも大切なこと。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;その大事なことを忘れた人々。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;そんな人々に流されて、理想的でなくなった自分。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;もういい歳なんだから、自分のことは自分でしっかりなさい、と言われそうだけど。&lt;/div&gt;
&lt;div&gt;実際そうなんだろうけど。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;弱い自分はそれができなかった。&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;理想的な人でありたかった&lt;/div&gt;
&lt;div&gt;理想的な人でありたかった&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://blogram.jp/users/agent/vote/?uid=120564#ref=vote&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;&lt;a href=&quot;http://widget.blogram.jp/images/bgButton1_whi.gif&quot;&gt;http://widget.blogram.jp/images/bgButton1_whi.gif&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;</description>
			<link>https://blogs.yahoo.co.jp/kerupani/17699180.html</link>
			<pubDate>Wed, 28 Dec 2016 00:55:21 +0900</pubDate>
			<category>詩</category>
		</item>
		</channel>
	</rss>