2016-10-27 4 views
0

나는 PHP를 사용하여 웹 사이트뿐만 아니라 안드로이드 앱을 만들고 있습니다. 안드로이드 애플 리케이션의 인코딩 이미지를 db에 저장합니다. 웹 사이트에 보여주고 싶은 그 같은 이미지. 나는 많은 노력을했지만 웹 사이트에 그 이미지를 보여주지 않았습니다. PHP를 사용하여 동일한 이미지를 디코딩하고 웹 사이트에 표시하는 방법.PHP를 사용하여 이미지 파일을 디코딩하는 방법

이 방법은, 내가 응용 프로그램에서 이미지를 인코딩하는 데 사용 :

private String encodeTobase64(Bitmap image) { 
    Bitmap bitmap_image = image; 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmap_image.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    byte[] b = stream.toByteArray(); 
    String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT); 
    return imageEncoded; 
} 

PHP에서 이미지를 표시하기 위해이 줄 :

$query = mysql_query("select * from ACCOUNT where (company_email='$email')") or die(mysql_error()); 
$value = mysql_fetch_array($query); 
$image = $value['PROFILE_PICTURE']; 

echo '<img class="img-circle" src="data:image/jpeg;base64,' . base64_encode($image) . '" width="40" height="40"/>'; 

이 사람이 저를 도와주세요! 미리 감사드립니다 ...

+0

jpg로 디코딩하고 저장하십시오.하지만 이미지 인코딩 된 데이터를 db에 저장하는 것은 좋지 않다고 생각합니다. 사이트가 느려질 것입니다. 양질의 이미지에 큰 인코딩 값이 포함되어 이미지로 저장하려고합니다. – Kumar

+2

안드로이드 개발에 익숙하지 않지만'Bitmap.CompressFormat.PNG'는 JPEG 이미지를 제안하지 않습니다 ... – jeroen

+2

'base64_encode ($ image)'. 당신은 두 번 인코딩하지 않아도됩니다. $ 이미지. 이미 base64로 인코딩 된 이미지입니다. 그래서 대신 $ image를 사용하십시오. 글쎄 그것은 당신이 데이터베이스에 넣은 것에 달려 있습니다. 우리가 어떻게 알았을까요? – greenapps

답변

1

데이터베이스에 64 문자열을 저장하는 것은 좋지 않습니다.

먼저 기본 64 문자열을 이미지로 변환하고 이미지 경로를 데이터베이스에 저장하십시오.

function convert_base64_to_image($base64, $image_path) { 
    $file = fopen($image_path, "wb"); 
    $image_raw_data = explode(',', $base64); 
    // get decodable part of image 
    fwrite($file, base64_decode($image_raw_data[1])); 
    fclose($file); 
    return $image_path; 
} 

지금 데이터베이스에서 이미지 경로를 저장하고 당신은 당신의 이미지를 표시하기 위해 직접 경로를 사용할 수 있습니다 :

당신은 다음과 같은 기능의 도움으로 기반을 이미지로 64 문자열을 디코딩 할 수 있습니다.

echo '<img class="img-circle" src="$image_path" width="40" height="40"/>'; 
관련 문제