//================================================================================================== // pngload32.dll / HSP3.1用png画像ロードDLL // Version 0.03, June 18, 2008 // Copyright (C) 綾織トモエ // mailto:ayaoritomoe@gmail.com // http://ayaoritomoe.oiran.org/ //-------------------------------------------------------------------------------------------------- // 動作環境:Windows (Windows XP で動作確認) // 開発環境:Hot Soup Processor 3.1 // 取扱種別:フリーソフト //================================================================================================== このプログラムはフリーソフトです。 自己責任でご自由にお使いください。 このプログラムは libpng と zlib を使用しているので、 再配布等は libpng と zlib の規約に従ってください。 (綾織トモエが書いたプログラムのソースは、特に利用制限などはありません。) このプログラムは C++ で作成しています。 ソースは src フォルダに入れてあります。 //-------------------------------------------------------------------------------------------------- // インストール //-------------------------------------------------------------------------------------------------- hsp3.exe と同じフォルダに pngload32.dll をコピーしてください。 common フォルダに pngload32.as をコピーしてください。 pngload32.dll を使用するスクリプトの文頭に #include "pngload32.as" と記述してください。 HSPで作った実行ファイルと同じフォルダに pngload32.dll をコピーしてください。 実行ファイルに pngload32.dll を埋め込むことはできません。 //-------------------------------------------------------------------------------------------------- // 使用可能になる命令 //-------------------------------------------------------------------------------------------------- ※命令の使用方法・パラメータは pngload32.as を参照してください。 ■ png画像ロード命令 pngload32 "filename", mode, alpha ■ png画像情報取得命令 get_png_info "filename", w,h, bit_depth, color_type, interlace_method get_png_size "filename", w,h ■ png画像情報取得命令(ロード後) get_png_info_after_load w,h, bit_depth, color_type, interlace_method get_png_size_after_load w,h ■ png画像ロード命令(DLL関数版) pngload32m memp, memsize, alpha pngload32f "filename", alpha ■ png画像情報取得命令(DLL関数版) get_png_info_m memp, memsize, w,h, bit_depth, color_type, interlace_method get_png_info_f "filename", w,h, bit_depth, color_type, interlace_method get_png_size_m memp, memsize, w,h get_png_size_f "filename", w,h ■ gmodeのモード7用画像再配置命令 gcopy7load src, x,y, w,h, cols,rows, mode gzoom7load zw,zh, src, x,y, w,h, cols,rows, mode, zmode ■ gmodeのモード7用画像再配置命令(一マス版) gcopy7load1 src, x,y, w,h, cols,rows, mode, i,j gzoom7load1 zw,zh, src, x,y, w,h, cols,rows, mode, zmode, i,j ■ ウィンドウリサイズ命令 resize_window w,h ■ ウィンドウ再初期化命令 reinit_window w,h, mode, wx1,wy1, winx,winy //-------------------------------------------------------------------------------------------------- // 開発環境・使用ライブラリ //-------------------------------------------------------------------------------------------------- このプログラムは cygwin + gcc で作成しています。 また、以下のライブラリを使用しています。 libpng 1.2.25 Copyright (C) 1998-2008 Glenn Randers-Pehrson zlib 1.2.3 Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler png画像をメモリから読み込む方法は、次のページを参考にさせていただきました。 Nanoseconds Hunter - libpngを使ってみよう(読み込み編) http://www.kcrt.net/program/uselibpng_read.html 素晴らしい開発環境・ライブラリを提供されている作者の方々に、心より感謝申し上げます。 //-------------------------------------------------------------------------------------------------- // バージョン履歴 //-------------------------------------------------------------------------------------------------- Version 0.03, June 18, 2008 : パレットモードのpng画像読み込みのバグ修正 / png画像情報取得命令(ロード後)追加 Version 0.02, April 19, 2008 : 公開 //////////////////////////////////////////////////////////////////////////////////////////////////// // 以下は、cygwin + gcc で pngload32.dll を作成する方法です。 //////////////////////////////////////////////////////////////////////////////////////////////////// ※異なる環境の場合は、必要に応じて makefile や pngload32.h / pngload32.cc を書き換えてください。 //-------------------------------------------------------------------------------------------------- // libpng と zlib のコンパイル //-------------------------------------------------------------------------------------------------- makefile のコンパイラオプションに -mno-cygwin を追加して make してください。 //-------------------------------------------------------------------------------------------------- // pngload32.dll のコンパイル //-------------------------------------------------------------------------------------------------- src フォルダに、libpng と zlib の libpng.a libz.a をコピーしてください。 src フォルダに、hspsdk31/sample/hpi3sample/ フォルダから、 hsp3debug.h hsp3struct.h hspvar_core.h hspwnd.h をコピーしてください。 シェルで src フォルダに移動して make してください。 //-------------------------------------------------------------------------------------------------- // 参考URL //-------------------------------------------------------------------------------------------------- PNG 利用術 http://www5.cds.ne.jp/~kato/png/ DOS 上で動作するプログラムを作る http://homepage3.nifty.com/kaku-chan/cygwin/chapter_005.html Cygwinでの共有オブジェクト (DLL) の作り方: Netsphere Laboratories http://www.nslabs.jp/cygwin-dll.rhtml //================================================================================================== //================================================================================================== //==================================================================================================