>백엔드 개발 >PHP 튜토리얼 >Base64 문자열을 JPEG로 변환할 때 '잘못된 이미지' 오류를 수정하는 방법은 무엇입니까?

Base64 문자열을 JPEG로 변환할 때 '잘못된 이미지' 오류를 수정하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-14 06:14:11236검색

How to Fix

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.