[英]android image to base64 string, and send to php
即時通訊在Android應用程序中使用此代碼,以捕獲來自相機的圖像並發送至JavaScript文件,以發送用於創建文件的PHP控制器,並將一些信息插入到MySQL中。
該過程運行良好,但結果圖像很小,質量很差
if( ACTION_TAKE_PICTURE == requestCode )
{
Bundle extras = intent.getExtras();
Bitmap bitmap;
if( null == extras || null == (bitmap=(Bitmap)extras.get("data")) ) return;
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
byte [] ba = out.toByteArray();
String b64img = Base64.encodeToString(out.toByteArray(), Base64.NO_WRAP);
try { out.close(); } catch(Exception e) {}
wv.loadUrl( String.format("%s%s('%s')", getString(R.string.js_call_prefix), getString(R.string.js_callback_camera), b64img ));
}
php代碼是:
public function executeImagen(sfWebRequest $request) {
$id = $request->getParameter('id');
$img = $request->getParameter('img');
$category = $request->getParameter('category');
$user = $this->getUser()->getAttribute('id_users');
try {
$basepdir = $path = sfConfig::get("sf_upload_dir") . '/photos/';
$basename = date('Ymd_His');
$buffer = base64_decode(str_replace(' ', '+', $img));
$pname = sprintf("%s%s.JPG", $basepdir, $basename);
$photo = sprintf("%s.JPG", $basename);
$fd = fopen($pname, "wb");
if ($fd) {
fwrite($fd, $buffer);
fflush($fd);
fclose($fd);
}
} catch (Exception $exc) {
echo $exc->getTraceAsString();
}
try {
$tabla = Doctrine::getTable('StorePhotos');
$tabla = new StorePhotos();
$tabla->id_store = $id;
$tabla->id_category = $category;
$tabla->id_users = $user;
$tabla->imagen = $photo;
$tabla->photo_date = date('Y-m-d H:i:s');
$tabla->save();
} catch (Exception $e) {
trigger_error("ERROR: ", $e->getMessage());
}
return sfView::NONE;
}
謝謝。
您正在獲取並發送縮略圖。 您需要從磁盤檢索全尺寸圖像。 閱讀Google的本指南 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.