質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

解決済

[Android Studio]ギャラリーから読み込んだ画像を加工したい

hum
hum

総合スコア12

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

2回答

0リアクション

2クリップ

4469閲覧

投稿2018/02/03 11:21

編集2018/02/08 08:21

以下の事が解決しません、どなたかご教示願います。

##やりたいこと
①「読込」ボタンを押すとギャラリーを呼び出し、画像を読み込み表示する
②「処理」ボタンを押すと読み込んだ画像が加工処理され、表示される

##できないところ
エミュレータは起動できた。
①はできた。
②のボタンを押した瞬間エラー表記が出てエミュレータが閉じる。
///画素読み込み/////のところのbmpにエラーが生じてしまい
解決できない。

##ソースコード

java

public class MainActivity extends AppCompatActivity { private static final int RESULT_PICK_IMAGEFILE = 1000; ImageView imageView; int width; int height; Bitmap bmp = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button1); //読込 Button button2 = findViewById(R.id.button3); //処理開始 Bitmap bmp = BitmapFactory.decodeResource( MainActivity.this.getResources(), R.drawable.gazou ); ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bmp); ////////////////////////////////////読み込みボタン///////////////////////////////////////////////// button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view1) { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); //onActivityResultを起動 startActivityForResult(intent, RESULT_PICK_IMAGEFILE); } }); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////処理開始ボタン//////////////////////////////////////////////////////////////////// button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view2) { /////画素読み込み/////////////////////////////////////////// width = bmp.getWidth(); height = bmp.getHeight(); //画像処理用配列 int[] pixels = new int[width*height]; //pixelsの配列にmyBitmapのデータを格納する bmp.getPixels(pixels, 0, width, 0, 0, width, height); /////////////////////////////////////////////////////////// //出力用画像領域確保 Bitmap output=Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);          /////画像加工部分/////  //省略          ///////////////////// //出力用の領域にセットする output.setPixels(pixels, 0, width, 0, 0, width, height); ((ImageView) findViewById(R.id.imageView)).setImageBitmap(output); } }); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } ///////////////////////////////////////////////画像読み込み処理/////////////////////////////////////////////////// @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { if (requestCode == RESULT_PICK_IMAGEFILE && resultCode == Activity.RESULT_OK) { if (resultData.getData() != null) { ParcelFileDescriptor pfDescriptor = null; try { Uri uri = resultData.getData(); pfDescriptor = getContentResolver().openFileDescriptor(uri, "r"); if (pfDescriptor != null) { FileDescriptor fileDescriptor = pfDescriptor.getFileDescriptor(); Bitmap bmp = BitmapFactory.decodeFileDescriptor(fileDescriptor); pfDescriptor.close(); ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bmp); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (pfDescriptor != null) { pfDescriptor.close(); } } catch (Exception e) { e.printStackTrace(); } } } } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。