C#返回位图宽度1

时间:2013-06-28 14:22:26

标签: c# image bitmap

我正在尝试创建一个位图,而我所拥有的只是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());

在最后两行,位图永远不会为null,但它的宽度始终为1,当我显示它时,没有图像。这是为了在Monodroid上创建,显示和保存图像,但这与这个问题并不太相关。

0 个答案:

没有答案