BlackBerry создать растровое изображение из пути - PullRequest
2 голосов
/ 19 января 2012

После фотосъемки в приложении я хочу получить изображение (по его пути).

Я вижу много примеров того, как получить изображение, единственная проблема в том, что это больше невозможно сделать с помощью Connector.open (), поскольку Connector устарел.

Что использовать вместо этого?

conn = (FileConnection)Connector.open("file:///SDCard/BlackBerry/pictures/" + picture);

try {
         InputStream input = null;
         input = fconn.openInputStream();

         int available = 0;
         available = input.available();
         int fSz = (int)fconn.fileSize();
         byte[] data = new byte[fSz];

         input.read(data, 0, fSz);
         image = EncodedImage.createEncodedImage(data,0,data.length);
         bkBitmap = image.getBitmap();                
} catch(ControlledAccessException e) { 
         pLog = "*** Problem Accessing image file:" + e;
         EventLogger.logEvent( GUID, pLog.getBytes() );                                                                                
}

Спасибо!

1 Ответ

4 голосов
/ 20 января 2012

Попробуйте этот код:

public class LoadingScreen extends MainScreen
{           
public LoadingScreen()
{   
    setTitle("Loading Screen");
    createGUI();
}

private void createGUI() 
{           
    BitmapField bitmapField=new BitmapField(getTheImage());
    add(bitmapField);
}

private Bitmap getTheImage() 
{
    Bitmap bitmap=null,scaleBitmap=null;
    InputStream inputStream=null;
    FileConnection fileConnection=null;     
    try
    {
        fileConnection=(FileConnection) Connector.open("file:///SDCard/BlackBerry/pictures/"+"background.png");
        if(fileConnection.exists())
        {
            inputStream=fileConnection.openInputStream();           
            byte[] data=new byte[(int)fileConnection.fileSize()];           
            data=IOUtilities.streamToBytes(inputStream);
            inputStream.close();
            fileConnection.close();
            bitmap=Bitmap.createBitmapFromBytes(data,0,data.length,1);

            //You can return this bitmap otherwise, after this you can scale it according to your requirement; like...
            scaleBitmap=new Bitmap(150, 150);
            bitmap.scaleInto(scaleBitmap, Bitmap.FILTER_LANCZOS);
        }
        else
        {
            scaleBitmap=Bitmap.getBitmapResource("noimage.png");//Otherwise, Give a Dialog here;
        }
    }
    catch (Exception e) 
    {
        try 
        {
            if(inputStream!=null)
            {
                inputStream.close();                
            }
            if(fileConnection!=null)
            {
                fileConnection.close();
            }
        } 
        catch (Exception exp) 
        {

        }
        scaleBitmap=Bitmap.getBitmapResource("noimage.png");//Your known Image;     
    }
    return scaleBitmap;//return the scale Bitmap not the original bitmap;
  } 
}

Я получил вот так ниже Изображение:

Get Image from SDCard

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...