Efetuando cálculo de Aspect Ratio de vídeos em C/C++
Publicado por Mauricio Ferrari em 01/02/2023
[ Hits: 2.012 ]
Blog: https://www.youtube.com/@LinuxDicasPro
// Calculate the Aspect Ratios of given values function get_aspectRatio(){ var resTd = document.getElementById("msg_status"); resTd.innerHTML = ''; if( (!document.getElementById('aspect_width').value.isNumber()) || (!document.getElementById('aspect_height').value.isNumber()) ){ resTd.innerHTML = " <div class='alert alert-warning fade in' role='alert'> Invalid width or height entered </div>"; return; } var w=parseInt(document.getElementById('aspect_width').value); var h=parseInt(document.getElementById('aspect_height').value); if(h == 0 && w == 0){ resTd.innerHTML = " <div class='alert alert-warning fade in' role='alert'> Please enter valid width and height values! </div>"; return; } if(h == 0 && w != 0){ resTd.innerHTML = " <div class='alert alert-warning fade in' role='alert'> Please enter a valid height value! </div>"; return; } if(h!= 0 && w == 0){ resTd.innerHTML = " <div class='alert alert-warning fade in' role='alert'> Please enter width </div>"; return; } if(h == w){ aspectRatio = '1 : 1'; }else{ var mode = null; if(h>w) { dividend = h; divisor = w; mode ='portrait'; } if(w>h){ dividend = w; divisor = h; mode = 'landscape'; } var gcd = -1; while(gcd == -1){ remainder = dividend%divisor; if(remainder == 0){ gcd = divisor; }else{ dividend = divisor; divisor = remainder; } } var hr = w/gcd; var vr = h/gcd; aspectRatio = (hr + ' : ' + vr); } $('.screen_mode').text(mode); $('.final_aspect_ratio').text( aspectRatio ); $('.final_width').text(w); $('.final_height').text(h); $('.final_dimensions').text(w + ' × ' + h); }
QString StatisticsWorker::convertAspectRatio(int x, int y) { int w = x; int h = y; int dividend, divisor; // Aqui, é definido se o arquivo multimídia é orientado em retrato ou paisagem. // Se a largura(w) é igual a altura(h) o Aspect Ratio é 1:1 e dispensa detalhes. if (h == w) { return "1:1"; } else { QString mode{}; if (h > w) { // Orientação em retrato: altura/largura dividend = h; divisor = w; mode = "Portrait"; } else if (w > h) { // Orientação em paisagem: largura/altura dividend = w; divisor = h; mode = "Landscape"; } // A string ratio é definida com a orientação definida incluindo o resultado da divisão entre a largura e a altura ou vice-versa. QString ratio{mode + " " + QString::number(((float)dividend / (float)divisor))}; // Aqui é que vem a calcular. gcd é definido como -1, que será definido um novo valor no loop quando remainder = 0. uint gcd = -1; int remainder; while (gcd == -1) { // remainder será o valor da sobra da operação. remainder = dividend % divisor; if (remainder == 0) { // gcd será o divisor perfeito para a largura e a altura. gcd = divisor; } else { // A próxima operação sempre será o resultado do divisor pela sobra. dividend = divisor; divisor = remainder; } } QString hr = QString::number(w / gcd); QString vr = QString::number(h / gcd); return QString::fromLatin1("%1 (%2)").arg(hr + ":" + vr, ratio); } }
Kino 1.3.4 no Slackware 14.2 x64
WhatsApp Desktop Aceitável no Deepin 20
Instalando o EasyMp3Gain no Deepin 20
Instale pacotes pelo apt através de uma lista
O Mais Prático ou o Mais Rápido? Alternativa ao cut -c
Microsoft Visual Studio Code no GNU/Linux
Limpando a tela sem NCURSES ou clrsrc() - DOS
Ambiente de desenvolvimento integrado para console
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Primeira vez utilizando Linux Ubuntu 22.04 e já tenho problemas… (4)
warsaw parou de funcionar após atualização do sistema (solução) (1)
Separar trafego da VPN da VPS (0)
Formatando cartão de memoria que nao formata[AJUDA] (17)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)