bitmapのトリミングでエラーが発生して困っています。

723 views
Skip to first unread message

takoyaki

unread,
Feb 1, 2013, 8:11:44 AM2/1/13
to android-g...@googlegroups.com
いつも拝見させていただいております。
いろいろ調べてみたのですが分からないためご教授していただければと思い投稿させていただきました。

早速ですが、現在アプリでボタンをタップした際に画像の一部を切り取って表示する処理を作成しております。
しかし、その処理を行うとエラーが発生してしまい、現状大変こまっております。

下記にソースから抜粋した処理を記載させていただきます。
ImaveView img = (ImageView) findViewById(R.id.xxx);
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.xxx);

@Override
public void onClick(View v) {
img.setImageBitmap(Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), 30));
}

layoutに設定している画像の位置をandroid:layout_marginLeft="10dp"で位置を変えております。

この処理を行うと下記のようなエラーが発生してしまいます。
java.lang.IllegalArgumentException: y + height must be <= bitmap.height()

何かよい解決策をご存知の方がいらっしゃいましたら、ご教授お願いいたします。

titoi2

unread,
Feb 1, 2013, 8:53:14 PM2/1/13
to android-g...@googlegroups.com
こんにちは、ちいといつです。

createBitmapで作成しようとしているBitmapの矩形に対してソースBitmapの高さが足りていないというエラーではないでしょうか。
mBitmap.getHeight() の値を確認してみてください。


2013年2月1日 22:11 takoyaki <takoy...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
 
 

takoyaki

unread,
Feb 3, 2013, 9:11:35 PM2/3/13
to android-g...@googlegroups.com
ちいといつさん

返信が遅くなってしまい申し訳ございません。
ご指摘のとおりにmBitmap.getHeight()<30のようになっていました。
こちらを修正することでエラーは発生しなくなりました。
ご教授ありがとうございます。

もう一つだけ質問させてください。
現在、棒状の画像をimg.setImageBitmap(Bitmap.
createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight()/3));
で高さを1/3に変更しましたが、画像の下部分の1/3の長さが切り取られてしまいます。
画像の1/3の長さを上部分から切り取りを行いたいのですがやり方をご存知であればご教授していただけないでしょうか。
Reply all
Reply to author
Forward
0 new messages