Abertura, girar, e armazenar imagens TIFF em uma coluna de banco de dados MySQL Blob

StackOverflow https://stackoverflow.com/questions/1032994

  •  06-07-2019
  •  | 
  •  

Pergunta

O meu problema é bastante simples e direta:

  1. Recuperar uma imagem de um banco de dados MySQL (atualmente armazenados como dados binários em uma coluna blob)
  2. Girar a imagem 90 graus (usando imagerotate do PHP)
  3. Loja parte de trás da imagem no banco de dados com que as mudanças de rotação aplicado.

Eu estou tendo funções constatação de problemas que vão deixar-me salvar a imagem como um fluxo de dados (não para o sistema de arquivos) uma vez que estas imagens não estão autorizados a tocar o servidor web (daí, por que eles estão no db). Qualquer conselho é bem-vindo.

Graças

Foi útil?

Solução

Você converter a imagem para outro tipo antes de girar? Você disse que você está usando tiffs, GD só pode ler os cabeçalhos de imagens TIFF , você vai precisar para convertê-lo em primeiro lugar. Provavelmente com ImageMagick

O mais provável é que você vai querer salvar os arquivos para um diretório temporário:

  • banco de dados de consulta para o arquivo
  • Salvar para o diretório temporário (pode proteger os arquivos de configuração de permissões, se necessário)
  • Rodar imagem
  • Inserir volta no banco de dados
  • arquivo temporário Excluir

Outras dicas

Selecione os dados do seu DB. Passar os dados para imagecreatefromstring()

Você agora terá um recurso de imagem que você pode chamar imagerotate diante.

Para salvá-lo de volta para a DB terá de saída lo usando imagepng() / imagejpeg() ou a função equivalente para o tipo de imagem que você está usando . Estas funções de saída para o browser ou arquivo para que você pode usar o buffer de saída para capturar uma corda para salvar de volta para o DB.

ob_start();
imagepng($resource);
$img_data = ob_get_contents();
ob_end_clean();

$img_data agora podem ser salvas no DB.

Este é apenas um esboço, mas espero que eu expliquei a idéia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top