1
Androidの192x192
ic_launcher.png(mipmap-xxxhdpi
バージョン)のバイトを読み込もうとしています。PNGバイトが異なるのはなぜですか?
Drawable drawable = ResourcesCompat.getDrawableForDensity
(getResources(), R.mipmap.ic_launcher, 640, getTheme());
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] pngBytes = stream.toByteArray();
Log.d("TEST", "" + pngBytes[37]);
私は、ファイルapp\src\main\res\mipmap-xxxhdpi\ic_launcher.png
に六角-エディタを使用して結果を比較しています:ここで
は私がやっているものです。
何らかの理由により、pngBytes[37]
のバイトは、の異なるです。前のバイトは同じです。
何が原因でしょうか?
おかげで)あなたのリソースへ。実際のバイトはどのように取得できますか? –
@UFCInsider:PNGを 'res/raw /'に移動し、 'リソース'オブジェクトに対して 'openRawResource()'を使います。あるいは、PNGを 'assets /'に移動し、 'AssetManager'で' open() 'を使います。どちらも、生のリソースまたはアセットに 'InputStream'を渡します。これらのファイルは、ビルドプロセスの一部として変更するべきではありません。 – CommonsWare
プログラムで実際のバイトを取得する方法はありますか?私はPNGを移動したくありません。 –