Pergunta

Estou tentando extrair a classificação da foto 'Stars' de arquivos .jpg usando o código PHP. Minha intenção é mostrar as imagens mais bem classificadas como parte de uma apresentação de slides. Descobri que, usando o php_jpeg_metadata_toolkit_1.11, sou capaz de obter a classificação do arquivo se a classificação for definida de dentro do Vista (clique com o botão direito do mouse -> Propriedades -> Detalhes -> Definir classificação clicando em estrelas) ao ler a matriz retornada por o metadata_toolkit

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
$rating = $exif[0][18246]['Data'][0];

No entanto, se eu definir a classificação usando o Adobe Bridge, posso ver as 'estrelas' no Vista, mas o
$exif[0][18246]['Data'][0] Retorna um valor nulo.

O código PHP está disponível para ler as classificações aplicadas pelo Windows Vista e pela Adobe Bridge?

Foi útil?

Solução 2

Descobri que a Adobe Bridge armazena a classificação em um local diferente no arquivo JPEG que o Vista. Veja detalhes no post encontrado em Código PHP sugerido para ler a classificação de arquivos definida por Adobe Bridge CS3

Outras dicas

Me bate, mas por que você não descobre por si mesmo:

$exif = get_EXIF_JPEG( $photodir . "/" . $filename );
print_r($exif);

Isso imprimirá o conteúdo de $exif, o que acho que será grande, mas você tem tempo, certo? (Veja a fonte no seu navegador da web para que você possa vê -lo corretamente formatado.) Faça a chave para encontrar a chave 0, depois a chave 18246, depois os dados -chave, depois a chave 0. Essa é a que você já encontrou. Agora procure onde a outra classificação pode estar. Espero que não seja muito difícil de encontrar. Quando você o encontrar, observe o caminho para ele. Então para obtê -lo:

// This is your Vista rating
$rating = $exif[0][18246]['Data'][0];
if ($rating == null) {
    // no Vista rating, so get the Bridge rating
    $rating = $exif[...fill in this path...];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top