トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
zackle
Åê¹ÆNo.31362
投稿日時: 2007-1-15 20:15
半人前
居住地: 東京
投稿: 36
使用環境:
Re: 読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい
ただ複製(draw())するだけだと、画像のサイズ等が違ってしまうので、

切り抜き後のビットマップを受ける、新しいビットマップデータを
切り抜き後のサイズで作成し、そこにRectangleでサイズをMatrixで位置を調整しつつ、draw()する。という感じですね。

画像を切り抜きつつ、新しいビットマップデータを作る関数を作ってみました。



import flash.display.*;
import flash.geom.*;

//	オリジナルのビットマップ
//	ライブラリにID:photoがあるとする
var originalBmp:BitmapData = BitmapData.loadBitmap('photo');

//	切り抜き関数を使って、新しいビットマップを作る
var clippedBmp:BitmapData = clipBitmap( originalBmp, 120, 120, 200, 200 );

//	クリップ後のビットマップを配置
attachBitmap( clippedBmp, 1 );

//	一応オリジナル画像をメモリから解放
originalBmp.dispose();

/**
 * ビットマップをクリッピングして新しいビットマップを作る
 * @param source BitmapData オリジナルのビットマップ
 * @param x Number 切り抜きX座標
 * @param y Number 切り抜きY座標
 * @param w Number 切り抜き横幅
 * @param h Number 切り抜き縦幅
 * @return BitmapData 切り抜かれた後のビットマップデータ
 */
function clipBitmap( source:BitmapData, x:Number, y:Number, w:Number, h:Number ):BitmapData {
	//	切り抜き用の矩形
	var clipRect:Rectangle = new Rectangle( 0, 0, w, h );
	//	切り抜き位置調整用のマトリックス
	var clipMatrix:Matrix = new Matrix();
	//	切り抜き位置をマイナスにずらす
	clipMatrix.translate( -x, -y );
	//	切り抜き後のビットマップデータ
	var clipBmp:BitmapData = new BitmapData( w, h );
	//	オリジナル画像をクリッピング情報を元にdraw()
	clipBmp.draw( source, clipMatrix, new ColorTransform(), null, clipRect );
	return clipBmp;
}




こんな感じです。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい moto818 2007-1-15 15:05
     Re: 読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい zackle 2007-1-15 15:46
       Re: 読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい moto818 2007-1-15 19:33
       » Re: 読み込んだ画像を矩形で範囲指定してBitmapData.draw()で複製したい zackle 2007-1-15 20:15

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops