O patch de DPI escreve nos bytes 13 a 17 assumindo SOI + APP0 JFIF nesse lugar. Se o blob vier com APP1 (EXIF) antes do JFIF, ou sem APP0, esses índices caem no meio de outro segmento. A densidade não muda e a gráfica segue no padrão.
Vale testar o blob real do toBlob no navegador que a pessoa abre, e inserir um APP0 JFIF curto quando a assinatura não bater.