簡體   English   中英

將圖像從c ++服務器發送到Android客戶端

[英]Send image from c++ server to Android client

我在我的C ++服務器上有一個在sqlite數據庫中保存為blob的圖像。 我從這樣的數據庫中獲取這些圖像:

        int sizeForThumbnail = sqlite3_column_bytes(sqlStmt, 1);
        char* thumbnail = (char * )sqlite3_column_blob(sqlStmt,1);

在此之后我使用套接字連接將其發送到Android手機:

        write(clientDescriptor,thumbnail,sizeForThumbnail);

在Android手機上,我嘗試獲取如下圖像:

        InputStream in = socket.getInputStream();
        byte[] byteBuffer = new byte[65536];
        int countForBytes = in.read(byteBuffer,0,65536);
        Bitmap bmp = BitmapFactory.decodeByteArray(byteBuffer, 0, countForBytes);
        ImageView photo = (ImageView) findViewById(R.id.imageView);
        photo.setImageBitmap(bitmap);

現在我准確地讀了我從c ++服務器發送了多少。 countForBytessizeForThumbnail相等,但decodeByteArray()返回null。 我究竟做錯了什么? 從數據庫中獲取圖像后,我嘗試在文件中寫thumbnail並將其保存為jpeg格式,並獲得正確的圖像,以便從數據庫中檢索是正確的。

我沒有得到你試圖用Java代碼做的魔法。 為什么將輸入數據存儲在char ,然后存儲在String

如何直接從InputStream解碼位圖。 它會對你有用嗎?

Bitmap bmp = BitmapFactory.decodeStream(socket.getInputStream());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM