Flashのライブラリから画像をエクスポートするJSFL


どうもお久しぶりです。

移転してから何も書いてなかったんですが、仕事に余裕がでてきたので何か書いてみようと思う次第であります。

今回のはFlash自体にはありそうでない機能、ライブラリにある画像をファイルとして書き出すJSFLです。

ソースはこんな感じに。

var _doc = fl.getDocumentDOM();
var _lib = _doc.library;
var _exportFolderURI = '';

function main(){
	var selectedItems = _lib.getSelectedItems();
	var numItem = selectedItems.length;
	if(numItem == 0){
		fl.trace("何かファイルを選択してください。");
	}
	else{
		_exportFolderURI = fl.browseForFolderURL('画像の保存先を選択してください');
		if(_exportFolderURI){
			for(var i = 0; i < numItem; i++){
				exportImage(selectedItems[i]);
			}
			fl.trace("エクスポートが完了しました。");
		}
		else{
			fl.trace('キャンセルしました');
		}
	}
}

/**
 * 画像ファイルだったらエクスポート
 * @param item:Item
 */
function exportImage(item){
	if(item.itemType != 'bitmap'){
		return;
	}
	var path = item.name;
	var pathAry = path.split('/');
	var name = pathAry.pop();
	var ext = '';
	if(name.indexOf('.') == -1){
		ext = (item.originalCompressionType == 'photo') ? '.jpg' : '.png';
	}
	
	item.exportToFile(_exportFolderURI + '/' + name + ext);
}
main();

現在選択しているライブラリの~とか余計な部分を省くと、

item.exportToFile(_exportFolderURI + '/' + name + ext);

だけですw 簡単ですね!CS4から使えるようになった機能なので、CS3以前では使えません。圧縮率を戻して画面のキャプチャを取れば大体はなんとかなるかもですが、アルファかかってるものは面倒そうですしね。こちらでさくっとエクスポートするのが良いかと思います。

上のコピペでもいけると思いますが、一応ファイルも。

imageExport.zip

使い方はこちらの公式資料を参考に。CS5でも同じような位置にあるかと思います。

「Flashのライブラリから画像をエクスポートするJSFL」への2件のフィードバック

  1. flaから 画像を取り出す必要があってたどり着きました。
    おかげさまで Flash CC で png が取り出せました。
    ありがとうございました。

    それで、ふと思って、
    30行目を
    if(item.itemType != ‘sound’){

    38行目を
    ext = (item.originalCompressionType == ‘RAW’) ? ‘.wav’ : ‘.mp3’;
    にかえて、 「音声をファイルにエクスポート.jsfl」として保存、したら、
    音声も保存できるようになました。

    音素材の再編集にも悩んでいたので、画像と合わせて、作業がとても楽になりました。
    どうもありがとうございました。

  2. CCで確認していなかったのですが、無事動いたようでよかったです。

    音声ファイルのエクスポートも同じようなできたのですねー。
    元素材が無い場合、困るのでたしかに便利そうです。

    (メールいただいた件、ご対応しました。よろしくお願いします。)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です