Arquivos de imagem (jpg, jpeg, gif e png) corrompidos - Fotografia - Fórum iMasters
Por fisiculturismo, Março 9, 2017 em Fotografia
fisiculturismo 0
Administro um fórum e os arquivos de imagem que foram sendo anexados pelos usuários ao longo do tempo acabaram sendo corrompidos pelo uso de um plugin que usava o Smush it (https://invisionpower.com/forums/topic/370954-smushit/#comment-2320158).
Ao que tudo indica, o header está corrompido (mensagem do Photoshop ao tentar abrir os arquivos: Could not complete your request because an invalid DHT JPEG table number is found ou Could not complete your request because a SOFn, DQT, or DHT JPEG marker is missing before a JPEG SOS marker).
Eu testei uma dezena de programas que prometem recuperar imagens corrompidas, mas nenhum deles conseguiu reparar as imagens.
Eu acredito que o plugin Smush it foi o responsável por esse desastre, mas não posso afirmar com certeza.
Alguém conhece algum especialista em recuperação de imagens JPG, GIF e PNG para indicar?
Interesses:PHP, MySQL, Wordpress, HTML, CSS, WebServer Local
Caso use um servidor Microsoft Server ele cria junto um arquivo thumb.db já ouvi dizer que tem a possibilidade de restaurar imagens só com esse arquivo, mas nunca precisei pois sempre consigo rodar o recuva e selecionar o diretorio antigo da pasta e funciona mas esta opção só é valida se possuir servidor dedicado ou acesso fisico no mesmo.
Tenta uma dessas duas opções.
Por andersonmartinsdev, Agora em PHP
Criei o seguinte formulário abaixo no site de um cliente, pra que se possa fazer a troca da foto de um usuário:
<form id="formulario" method="post" enctype="multipart/form-data"> <div class="blocoCampo"> <span> Escolher nova foto (dimensões: 50px x 50px; formato: JPG) </span> <input type="file" id="imgupload" name="imgupload"> </div> <div class="confirmarTrocaSenha"> <input type="button" value="" id="btn_troca_foto"> </div> </form> Em seguida, eu criei na função abaixo (javascript) pra ele conferir a extensão e as medições em Pixels do arquivo. Ele deve ser sempre 50x50 e JPG:
var _URL = window.URL || window.webkitURL; $("#imgupload").change(function (e) { // Aqui verifica as dimensões e a extensão do arquivo var foto = $('#imgupload').val(); var extensao = foto.substr(foto.length - 3); var file, img; if ((file = this.files[0])) { img = new Image(); img.onload = function () { if(this.width !== 50){ alert('Dimensões não permitidas!'); $("#imgupload").val(''); } else if(this. height !== 50){ alert('Dimensões não permitidas!'); $("#imgupload").val(''); } else if(extensao != 'jpg'){ alert('Extensão não permitida!'); $("#imgupload").val(''); } }; img.src = _URL.createObjectURL(file); } }); E abaixo é a função que deve hospedar a foto, depois que a mesma for carregada:
$('#btn_troca_foto').click(function(){ var imgupload = $('#imgupload').val(); if(imgupload == ''){ alert("Nenhuma foto selecionada!"); } else{ $.ajax({ url: "trocarfoto", type: "POST", data: { imgupload: imgupload }, success:function(a){ alert(a); $('.contentLightbox, .bgLightbox').fadeOut(); } }); } }); E o link da função trocarfoto está em PHP abaixo:
public static function trocaFoto() { @mkdir('upload/wt_usuario', 0777); $target = "upload/wt_usuario/" . $_SESSION['usuario']['id'] . ".jpg"; move_uploaded_file($_FILES['imgupload']['tmp_name'], $target); echo "Foto de perfil alterada"; } Tudo funcionando, menos a parte da função move_uploaded_file, que deveria pegar o arquivo que está no input imgupload e transferir pro diretório no servidor do meu site.
O que será que tem de errado ou que pode estar faltando? Sei que procurando na internet tem várias formas de fazer, mas acredito que esteja faltando apenas algum detalhes no meu código.
<a title="Clique aqui para trocar sua foto" onclick='trocarFoto()'><img class='FotoAniversariante' <?php echo "src='".'upload/wt_usuario/'.$_SESSION['usuario']['id'].".jpg'></a>"; ?> <input type="file" id="imgupload" style="display:none" /> <button id="novaFoto" style="display: none"></button> E a função trocarFoto() em javascript:
function trocarFoto(){ $('#imgupload').trigger('click'); } O que eu queria era que, no momento em que o novo arquivo fosse escolhido, que ele já hospedasse no diretório do meu servidor (upload/wt_usuario). Acredito que tenha que ser uma função que envolva AJAX.
Por hostbasico
Em meu servidor a função exec() não é permitida.
Existe alguma outra forma de efetuar essa conversão?
Agradeço desde já pois preciso efetuar essas conversões para exibição de uma capa.
Como salvar uma imagem .JPG e substituir uma imagem com um clique usan
Por rubensgpl
Eu tentei várias vezes fazer isso usando ações e scripts (O qual eu realmente não entendo como funciona).
Eu li essa discussão no Adobe fóruns, mas isso não é claro para mim ainda:
Vou explicar o que eu faço no meu trabalho e o que eu preciso para automatizar isso.
1- Eu abro uma imagem
2- Eu edito e cortar a imagem
3- Então eu aperto CTRL+SHIFT+S para salvar como .JPG
4- Clique em SIM para substituir a imagem que já existe na pasta
5- Em Opções de .JPG eu seleciono as seguintes:
Quality: 12 (Maximum)
Format Options: Progressive (Scans: 3)
6- Depois eu fecho a imagem e clico para NÃO SALVAR EM PSD (porque às vezes eu realmente não preciso de um PSD)
Todo este processo seria ok, se eu não abrisse e editasse umas 200 imagens por dia, eu tenho dar vários cliques para fazer o processo todo.
Haveria uma melhor maneira de automatizar isso? Eu acho que usando scripts, eu tentei usar ações, mas não funcionou.