【Defold】画像読み込みに「Image Loader」アセット

Defold, DEVELOP

“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)

お知らせ

Posted by kazupon