Posted By

daisuke103 on 02/14/08


Tagged

display data textmate pixel size new cut Pic as2 geom bitmap


Versions (?)

AS2 画像を切り抜き、新しいビットマップデータを作る


 / Published in: Other
 

  1. /*ただ複製(draw())するだけだと、画像のサイズ等が違ってしまうので、
  2. 切り抜き後のビットマップを受ける、新しいビットマップデータを
  3. 切り抜き後のサイズで作成し、そこにRectangleでサイズをMatrixで位置を調整しつつ、draw()する。
  4. 画像を切り抜きつつ、新しいビットマップデータを作る*/
  5.  
  6. import flash.display.*;
  7. import flash.geom.*;
  8.  
  9. // オリジナルのビットマップ
  10. // ライブラリにID:photoがあるとする
  11. var originalBmp:BitmapData = BitmapData.loadBitmap('photo');
  12.  
  13. // 切り抜き関数を使って、新しいビットマップを作る
  14. var clippedBmp:BitmapData = clipBitmap( originalBmp, 120, 120, 200, 200 );
  15.  
  16. // クリップ後のビットマップを配置
  17. attachBitmap( clippedBmp, 1 );
  18.  
  19. // 一応オリジナル画像をメモリから解放
  20. originalBmp.dispose();
  21.  
  22. /**
  23. * ビットマップをクリッピングして新しいビットマップを作る
  24. * @param source BitmapData オリジナルのビットマップ
  25. * @param x Number 切り抜きX座標
  26. * @param y Number 切り抜きY座標
  27. * @param w Number 切り抜き横幅
  28. * @param h Number 切り抜き縦幅
  29. * @return BitmapData 切り抜かれた後のビットマップデータ
  30. */
  31. function clipBitmap( source:BitmapData, x:Number, y:Number, w:Number, h:Number ):BitmapData {
  32. // 切り抜き用の矩形
  33. var clipRect:Rectangle = new Rectangle( 0, 0, w, h );
  34. // 切り抜き位置調整用のマトリックス
  35. var clipMatrix:Matrix = new Matrix();
  36. // 切り抜き位置をマイナスにずらす
  37. clipMatrix.translate( -x, -y );
  38. // 切り抜き後のビットマップデータ
  39. var clipBmp:BitmapData = new BitmapData( w, h );
  40. // オリジナル画像をクリッピング情報を元にdraw()
  41. clipBmp.draw( source, clipMatrix, new ColorTransform(), null, clipRect );
  42. return clipBmp;
  43. }
  44.  
  45.  

Report this snippet  

You need to login to post a comment.