【Defold】画像読み込みに「Image Loader」アセット
“Image Loader" アセットは JPG、PNG、その他の画像をDefoldのBufferオブジェクトに効率的に読み込みます。
目次
特徴
非同期および同期モードで画像をロードできます。また、画像を完全にデコードせずに、画像のヘッダーのみを処理して、幅、高さ、チャネル情報のみを提供できます。ヘッダー情報だけ取れるのは個人的に嬉しい。
サポートプラットフォーム
Android, iOS, macOS, Linux, Windows, HTML5.
アセットページ
https://defold.com/assets/imageloader/
ライブラリのURL
https://github.com/Lerg/extension-imageloader/archive/master.zip
依存するライブラリ
なし。
使い方
同期読み込み
local data = sys.load_resource('/res/image.jpg')
local image_resource = imageloader.load{
data = data
}
pprint(image_resource)
非同期読み込み
local data = sys.load_resource('/res/image.jpg')
imageloader.load{
data = data,
listener = function(self, image_resource)
pprint(image_resource)
end
}
読み込んだファイルをグレイスケールに変換する
ちょっとしたおまけ機能。
local filename = directories.path_for_file('image.jpg', directories.documents)
local image_resource = imageloader.load{
filename = filename,
channels = 1
}
pprint(image_resource)
モデルのテクスチャを変更する
local data = sys.load_resource('/res/image.jpg')
local image_resource = imageloader.load{
data = data
}
resource.set_texture(go.get('#model', 'texture0'), image_resource.header, image_resource.buffer)