Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Danilo CS

Imagem e o Thumbs.php

Recommended Posts

Olá!

Eu quero usar um aplicativo thumb.php (clica no link, eu anexei ele no post) no meu site, para reduzir o tamanho automaticamente das fotos.

Só que para ele funcionar por padrão, normalmente se faz assim: 

<img src="thumb.php?img=url-da-imagem/imagem.jpg">

Meu site já tem 500 mil imagens, fazer isso url por url fica meio enviável. Eu queria saber se dá para dar um jeitinho para ele funcionar diretamente sem ter que inseri-lo na tag da imagem, sabe?

 

Se não tiver jeito eu vou usá-lo em algumas páginas, tipo na index

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas!

Então eu nunca usei isso mas 

<img src="thumb.php?img=url-da-imagem/imagem.jpg">

Tens de alterar todas as tuas imagens e meter na img um src um link para um ficheiro php que irá tratar de formatar essa imagem no qual eu já vi o código .

Então não me parece teres muitas opções mas tudo depende tu imagina na pagina inicial tens 5 imagens por exemplo e os numeros delas forem (1.jpg/2.jpg/3.jpg/4.jpg/5.jpg) então assim era fácil em vez de estares a criar uma tag para cada imagem isto ficaria assim algo do género ->

$numeroDeImagens = 5;
for ($i=0;$i<=5;$i++)
{
 	echo "<img src='thumb.php?img=$i/imagem.jpg'>";
}

em php poderia fazer em js também porém em php seria mais facil já fiz algo parecido para mostrar imagens.

 

Pronto é isso se precisares de algo diz acho que de momento não estou a ver nada que te possa ajudar se tiveres as tuas imagens numeradas é muito facil caso contrário pode se que alguém saiba alguma outra forma.

 

Boa sorte

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha não curto ficar baixando arquivo e coisas que tais (desculpa aí) mas que estaires a usar pra redimensionar as imagems? o php tem uma biblioteca chamada GD para manipulação de imagem que permite fazer muita coisa com imagens como botar filtros, girar e também redimensionar. se não estás a usares ela deixo como dica dares uma estudada e aí tu pode fazer um loop e fazer a paradinha tudo automaticamente nesse loop. claro que dependendo da situação melhor fazer por lotes de quantidades menores ou então se tiver no localhost pode mandar fazer tudo ao mesmo tempo claro que tendo certeza que no php.ini está setado pra poder rodar o script por um tempo maior e também poder usar mais memória e tal

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 horas atrás, Danilo CS disse:

Meu site já tem 500 mil imagens

Reduzir a imagem dinamicamente não ajuda muito, ainda mais no seu caso isso sempre ia ocorrer o processamento bruto (como está no seu script)

 

Eu penso que seria mais interessante em dividir o trabalho.

 

1 - Etapa redimensionar todas as imagens, para uma pasta especifica.

2 - Exibir as imagens redimensionadas, algo como: thumb.php?img=url-da-imagem/imagem.jpg pode funcionar.

 

 

 

Já ouviu falar em NodeJs?

Ele tem um modulo chamado gulp, que pode ser muito eficiente nesse quesito de redimensionamento/minificação de imagens.

 

Aqui tem um video explicando como utilizar ele:

https://www.alura.com.br/curso-online-gulp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos la:

47 minutos atrás, marsolim disse:

olha não curto ficar baixando arquivo e coisas que tais (desculpa aí) mas que estaires a usar pra redimensionar as imagems? o php tem uma biblioteca chamada GD para manipulação de imagem que permite fazer muita coisa com imagens como botar filtros, girar e também redimensionar. se não estás a usares ela deixo como dica dares uma estudada e aí tu pode fazer um loop e fazer a paradinha tudo automaticamente nesse loop. claro que dependendo da situação melhor fazer por lotes de quantidades menores ou então se tiver no localhost pode mandar fazer tudo ao mesmo tempo claro que tendo certeza que no php.ini está setado pra poder rodar o script por um tempo maior e também poder usar mais memória e tal

Eu upei o arquivo porque eu achei que ia ser mais fácil para o pessoal analisar...

 

37 minutos atrás, gabrieldarezzo disse:

Reduzir a imagem dinamicamente não ajuda muito, ainda mais no seu caso isso sempre ia ocorrer o processamento bruto (como está no seu script)

 

Eu penso que seria mais interessante em dividir o trabalho.

 

1 - Etapa redimensionar todas as imagens, para uma pasta especifica.

2 - Exibir as imagens redimensionadas, algo como: thumb.php?img=url-da-imagem/imagem.jpg pode funcionar.

 

 

 

Já ouviu falar em NodeJs?

Ele tem um modulo chamado gulp, que pode ser muito eficiente nesse quesito de redimensionamento/minificação de imagens.

 

Aqui tem um video explicando como utilizar ele:

https://www.alura.com.br/curso-online-gulp

 

Eu nunca ouvi falar não eu vou dar uma olhada..

Em mas "500 mil imagens" foi em sentido figurado em? :) Mas deve tem muuuitas fotos lá. Eu ia dar um fim nisso, mas sei lá, quando eu vi eu fiquei com dó.

É que toda as fotos são "emprestadas" eu só uso a URL assim como os fóruns fazem:

Ex. http://www.superdanilof1page.com.br/pilotos/pilotos-de-formula-1-lewis-hamilton.php

 

3 horas atrás, Vitor Mendes disse:

Boas!

Então eu nunca usei isso mas 


<img src="thumb.php?img=url-da-imagem/imagem.jpg">

Tens de alterar todas as tuas imagens e meter na img um src um link para um ficheiro php que irá tratar de formatar essa imagem no qual eu já vi o código .

Então não me parece teres muitas opções mas tudo depende tu imagina na pagina inicial tens 5 imagens por exemplo e os numeros delas forem (1.jpg/2.jpg/3.jpg/4.jpg/5.jpg) então assim era fácil em vez de estares a criar uma tag para cada imagem isto ficaria assim algo do género ->


$numeroDeImagens = 5;
for ($i=0;$i<=5;$i++)
{
 	echo "<img src='thumb.php?img=$i/imagem.jpg'>";
}

em php poderia fazer em js também porém em php seria mais facil já fiz algo parecido para mostrar imagens.

 

Pronto é isso se precisares de algo diz acho que de momento não estou a ver nada que te possa ajudar se tiveres as tuas imagens numeradas é muito facil caso contrário pode se que alguém saiba alguma outra forma.

 

Boa sorte

 

 

O problema que cada foto tem uma url diferente já que eu só coloco para visualizar, assim como é feito nos fóruns.

Eu pensei em algo agora aqui, acho que era minha ideia original. Vai dar um trabalhinho também, mas talvez seja o jeito.

Eu poderia colocar a url de cada foto no banco de dados. Daí com FOR ou WHILE só faria isso né?:

<?php 
$url = "endereços das fotos";
?>
<img src="thumb.php?=img=$url">

Ou então dar um fim em todas elas :tounge_wink:. Resolve o problema tambem hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

a ideia que eu tinha pensado era usar o gd e glob pra pegar todas as imagens e rodar todas dentro de um for(each) da vida:tounge_wink:

Compartilhar este post


Link para o post
Compartilhar em outros sites
38 minutos atrás, marsolim disse:

a ideia que eu tinha pensado era usar o gd e glob pra pegar todas as imagens e rodar todas dentro de um for(each) da vida:tounge_wink:

 

Acho que vou fazer isso....Mas vai dar uma trabalheira que eu tinha me esquecido....
Acho que era por isso que está em minhas anotações "criar um banco de dados de imagem" vai ver que foi pensando nisso....

Compartilhar este post


Link para o post
Compartilhar em outros sites

de qualquer forma se tiver jeito, se tu tiver um servidor apache instalado no seu pc pode ser melhor baixar todas as imagens pra ele e fazer o processo e depois upar elas de volta porque aí tu pode alterar o tempo limite de execução de script e também a quantidade de memória que pode ser usada isso claro considerando que tenhas um pc que pode cuidar disso tranquilamente hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...é mais fácil...mas pelo que eu entendo, copiar as fotos para o PC para depois upar eu estaria violando os direitos autorais.

Agora se eu copiar só a url, seria apenas como uma foto divulgação. Meu site apenas visualizaria aquela foto, assim como faz os fóruns. 

Foi o que eu entendi...não sei se estou certo.

E essa ideia até é boa, tipo no caso dos pilotos, mostrar cada carro que ele passou por temporada, mas é muito trabalhosa a manutenção....Por isso sempre dá vontade de acabar com isso

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 horas atrás, Danilo CS disse:

 

O problema que cada foto tem uma url diferente já que eu só coloco para visualizar, assim como é feito nos fóruns.

Eu pensei em algo agora aqui, acho que era minha ideia original. Vai dar um trabalhinho também, mas talvez seja o jeito.

Eu poderia colocar a url de cada foto no banco de dados. Daí com FOR ou WHILE só faria isso né?:


<?php 
$url = "endereços das fotos";
?>
<img src="thumb.php?=img=$url">

Ou então dar um fim em todas elas :tounge_wink:. Resolve o problema tambem hehehe

Ora nem mais isso funcionaria 100% já agora so mais uma coisa que talvez ainda te possa ajudar mais as imagens estão todas dentro da mesma pasta ?? 

 

Porque caso estejam todas dentro de uma pasta poderias fazer o seguinte 

<?php
// Mostramos todas as imagens que estão dentro da pasta images
$files = glob("images/*.*");
for ($i=1; $i<count($files); $i++) { 
	$num = $files[$i]; 
  	echo '<img alt="image" src="'.$num.'" />'; 

?>

Porem esse código acima tem uma desvantagem as imagens serão mostradas aleatoriamente ou seja não terão sempre a mesma ordem o que pode não ser tão bom...

Enquanto se o link(CAMINHO) da imagem tiver na base de dados vais conseguir sempre me-telas por ordem... Cada imagem está associada a algo ou é apenas mesmo para ser exibida ??

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.