Base64 문자열을 이미지 파일로 변환
Base64로 인코딩된 문자열을 이미지 파일로 변환하는 것은 간단할 수 있지만 다음과 같은 경우 오류가 발생할 수 있습니다. 올바르게 처리되지 않았습니다. 이러한 오류 중 하나는 잘못된 이미지입니다.
문제:
다음 코드를 사용하여 Base64 문자열을 이미지 파일로 변환하려고 할 때:
function base64_to_jpeg($base64_string, $output_file) { $ifp = fopen( $output_file, "wb" ); fwrite( $ifp, base64_decode( $base64_string) ); fclose( $ifp ); return( $output_file ); } $image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
'잘못됨'이라는 오류가 발생할 수 있습니다. image."
해결책:
이 오류는 인코딩된 콘텐츠에 data:image/png;base64가 포함되어 있기 때문에 발생합니다. 이 추가 데이터는 base64 디코딩 프로세스를 방해하여 잘못된 이미지 파일을 생성합니다. 이 문제를 해결하려면 문자열을 디코딩하기 전에 중복 데이터를 제거하십시오.
function base64_to_jpeg($base64_string, $output_file) { // open the output file for writing $ifp = fopen($output_file, 'wb'); // split the string on commas // $data[0] == "data:image/png;base64" // $data[1] == <actual base64 string> $data = explode(',', $base64_string); // we could add validation here with ensuring count( $data ) > 1 fwrite($ifp, base64_decode($data[1])); // clean up the file resource fclose($ifp); return $output_file; }
불필요한 데이터를 제거하고 실제 Base64로 인코딩된 문자열만 디코딩되도록 하면 문자열을 유효한 문자열로 성공적으로 변환할 수 있습니다. 이미지 파일입니다.
위 내용은 Base64 문자열을 JPEG로 변환할 때 '잘못된 이미지' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!