ビットマップを作成しようとしていますが、savedUri と imagePath しかありません。写真の写真の実際のプロパティとログに記録されたパスを見ると、それらは同じであるため、imagePathを正しく取得していると思います。ビットマップを作成する方法に問題があると思います。私が使用するコードは次のとおりです。
if (_bitmap == null)
{
string imagePath = null;
try
{
imagePath = GetRealPathFromURI(_saveUri);
LogManager.Info("********the image path is", imagePath);
}
catch
{
imagePath = _saveUri.Path;
}
// First decode with inJustDecodeBounds=true to check dimensions
BitmapFactory.Options options = new BitmapFactory.Options();
options.InJustDecodeBounds = true;
BitmapFactory.DecodeFile(imagePath, options);
var width = (int)Math.Round(_outputX * 0.5);
var heigth = (int)Math.Round(_outputY * 0.5);
options.InSampleSize = BitmapTools.CalculateInSampleSize(options, width, width * heigth);
options.InJustDecodeBounds = false;
options.InDensity = 160;
try
{
_bitmap = BitmapFactory.DecodeFile(imagePath, options);
}
catch
{
GC.Collect();
_bitmap = BitmapFactory.DecodeFile(imagePath, options);
}
}
if (_bitmap == null)
LogManager.Info("********the bitmap width is: ", "well bloody hell the bitmap is null");
else
LogManager.Info("********the bitmap width is: ", _bitmap.Width.ToString());
最後の 2 行では、ビットマップが null になることはありませんが、幅は常に 1 で、表示すると画像がありません。これは、モノドロイドで画像を作成、表示、保存するためのものですが、この質問にはあまり関係ありません。