Show Image inside another

Asked

Viewed 417 times

2

Galera So and I have this picture of wallet and I need to display another image on top of the case the photo of the person, I was able to enter the data searched from the bank but the photo of the person I can not find from the bank and display on top of this picture of the wallet

Codigo para exibição

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>exemplo</title>
    </head>

    <body>
        <img src="ex1.php"  />
    </body>
    </html>

    <?php
    //Inclui a conexao
    require 'conexao.php';

Ex1.php

        //Prepara conexão com mysql, classe pdo
        $stm = $pdo->prepare( 'SELECT * FROM ifsp WHERE id = 4' );
        //Executa conexao
        $stm->execute();

        //Tranforma toda pesquisa em uma matriz
        $consulta = $stm->fetch( PDO::FETCH_ASSOC );

    // Carregar imagem já existente no servidor
    $imagem = imagecreatefromjpeg( "carteirinha.jpg" );
    /* @Parametros
     * "foto.jpg" - Caminho relativo ou absoluto da imagem a ser carregada.
     */

    // Cor de saída
    $cor = imagecolorallocate( $imagem, 0, 0, 0 );
    /* @Parametros
     * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
     * 0 - Cor vermelha ( RGB )
     * 0 - Cor verde ( RGB )
     * 0 - Cor azul ( RGB )
     * -- No caso acima é preto
     */

    // Texto que será escrito na imagem
    $nome = $consulta['nome_aluno'];
    $rg = $consulta['rg'];
    $prontuario = $consulta['prontuario'];
    $datavalidade = $consulta['data_validade'];
    $curso = $consulta['curso'];
    $periodo = $consulta['periodo'];
    /* @Parametros
     * $_GET['nome'] - Texto que será escrito
     */

    // Escrever nome
    imagestring( $imagem, 5, 220, 750, $nome, $cor );
    /* @Parametros
     * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
     * 5 - tamanho da fonte. Valores de 1 a 5
     * 15 - Posição X do texto na imagem
     * 515 - Posição Y do texto na imagem
     * $nome - Texto que será escrito
     * $cor - Cor criada pelo imagecolorallocate
     */
    imagestring( $imagem, 5, 100, 860, $rg, $cor );
    imagestring( $imagem, 5, 100, 925, $prontuario, $cor );
    imagestring( $imagem, 5, 350, 925, $datavalidade, $cor );
    imagestring( $imagem, 5, 220, 620, $curso, $cor );
    imagestring( $imagem, 5, 350, 860, $periodo, $cor );;
    // Header informando que é uma imagem JPEG
    header( 'Content-type: image/jpeg' );

    // eEnvia a imagem para o borwser ou arquivo
    imagejpeg( $imagem, NULL, 80 );
    /* @Parametros
     * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
     * NULL - O caminho para salvar o arquivo. 
              Se não definido ou NULL, o stream da imagem será mostrado diretamente. 
     * 80 - Qualidade da compresão da imagem.
     */

Code to display database image

<?php
// Incluindo arquivo de conexão
require 'conexao.php';

$id = (int) $_GET['id'];

// Selecionando fotos
$stmt = $pdo->prepare('SELECT conteudo, tipo FROM ifsp WHERE id = :id');
$stmt->bindParam(':id', $id, PDO::PARAM_INT);

// Se executado
if ($stmt->execute())
{
    // Alocando foto
    $foto = $stmt->fetchObject();

    // Se existir
    if ($foto != null)
    {
        // Definindo tipo do retorno
        header('Content-Type: '. $foto->tipo);

        // Retornando conteudo
        echo $foto->conteudo;
    }
}
  • So Victor, let me see if I help you, the problem is where exactly: the image of the person who’s not coming or you’re having trouble positioning the image of the person on top of another ?

  • I can’t bring the picture of the person in the bank to display on top of the wallet

1 answer

1


Since all data is in the same table (ifsp) you can add the photo to the image of the wallet you created using imagecopyresampled (untranslated), this way eliminates the need to overlap the two images.

...
imagestring( $imagem, 5, 350, 860, $periodo, $cor );

$foto = imagecreatefromstring($consulta['conteudo']); // cria imagem
imagecopyresampled(
  $imagem, // destino
  $foto, // origem
  $posicao_x, // posição X na carteirinha
  $posicao_y, // posição Y na carteirinha
  0, // posição X na origem
  0, // posição Y na origem
  $largura, // largura desejada na carteirinha
  $altura, // altura desejada na carteirinha
  imagesx($foto), // largura da origem
  imagesy($foto) // altura da origem
);

// Header informando que é uma imagem JPEG
header( 'Content-type: image/jpeg' );
...

Browser other questions tagged

You are not signed in. Login or sign up in order to post.