Como as imagens JPEG são compactadas em blocos de 8x8 pixels, se um JPEG tiver uma largura ou altura que não seja divisível por 8, é tecnicamente possível remover os 1-7 pixels da borda externa sem perdas ?
(Ou para cortar bordas externas de qualquer tamanho, desde que os blocos internos de 8x8 estejam intactos.)
Com base na
jpegtran
página do manual (e na Wikipedia ), o canto superior esquerdo de uma imagem JPEG deve estar no canto de um bloco 8x8, portanto, é possível cortar linhas/colunas de um único pixel da parte inferior e das bordas direitas , mas não da esquerda ou o topo . Blocos completos de 8x8 também podem ser cortados da esquerda e do topo.A página do manual menciona isso sob o
-crop
comando:As bordas superior e esquerda de uma imagem jpeg estão sempre em um limite de bloco. As bordas inferior e direita podem ou não estar.
Portanto, você pode escolher livremente as bordas inferior e direita de sua imagem cortada sem perdas, mas as bordas superior e esquerda da imagem cortada devem ser um múltiplo inteiro do tamanho efetivo do bloco das bordas superior e esquerda originais.
O tamanho efetivo do bloco de imagens JPEG varia. O DCT funciona em blocos de 8x8, mas alguns JPEGs são subamostrados de croma, tornando o tamanho efetivo do bloco de 8x16 ou 16x16.