Image upload with transparent background

Asked

Viewed 259 times

-3

I am idealizing a system in which the user should upload an image, but this image should be with the transparent background, because I want to use it to over by another image. I don’t know how to do this, I haven’t had any idea yet.

  • 1

    What have you tried?

  • You only need css to make the image transparent ?

  • I don’t have anything concrete yet. I tested a few codes I saw on the internet. I’m still in the idealization part. It could be just css, as long as the image transparants after the upload.

2 answers

0

The image will have a transparent background if made in PNG format. You can do a check when the user uploads the image, ensuring that the image is in PNG format. It should be specified to the user that the image should have transparent background.

I believe it is not possible to take an image with colored background and leave it with transparent background without using some image editing software.

0

I’m doing a job that has what you need and this part of images is simple, once I saw understood easy:

if ($_POST['cadastrar']) {

$foto = $_FILES["foto"];

if (!empty($foto["name"])) {

    // Largura máxima em pixels
    $largura = 1500;
    // Altura máxima em pixels
    $altura = 1800;
    // Tamanho máximo do arquivo em bytes
    $tamanho = 900000;

    // Verifica se o arquivo é uma imagem
    if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
       $error[1] = "Isso não é uma imagem.";
    } 

    // Pega as dimensões da imagem
    $dimensoes = getimagesize($foto["tmp_name"]);

    // Verifica se a largura da imagem é maior que a largura permitida
    if($dimensoes[0] > $largura) {
        $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
    }

    // Verifica se a altura da imagem é maior que a altura permitida
    if($dimensoes[1] > $altura) {
        $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
    }

    // Verifica se o tamanho da imagem é maior que o tamanho permitido
    if($foto["size"] > $tamanho) {
        $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
    }

    if (count(@$error) == 0) {

        // Pega extensão da imagem
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

        // Gera um nome único para a imagem
        $nome_imagem = md5(uniqid(time())) . "." . $ext[1];

        // Caminho de onde ficará a imagem
        $caminho_imagem = "fotos/" . $nome_imagem;

        // Faz o upload da imagem para seu respectivo caminho
        move_uploaded_file($foto["tmp_name"], $caminho_imagem);

        $sql = mysql_query("INSERT INTO usuarios VALUES ('', '".$nome_imagem."')");

        if ($sql){
            echo "Você foi cadastrado com sucesso.";
        }
    }

    if (count(@$error) != 0) {
        foreach ($error as $erro) {
            echo $erro . "<br />";
        }
    }
}
}

Remembering that you will need to create a folder inside the folder that is the system to allocate the photos, in case the folder photos, as is where the comment says way where the image will be

  • Didn’t work :/

  • you put this code inside php? Where is it (pjpeg|jpeg|png|gif|bmp) left only png? png that I know is the only format that supports transparence

Browser other questions tagged

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