PNG - лучший вариант между PNG и JPG. Основной проблемой здесь является сжатие - в изображениях есть две формы сжатия: с потерями и без потерь. Алгоритмы сжатия с потерями (например, те, которые используются в файлах JPG) «теряют» информацию во время цикла сжатия-> декомпрессии. Из-за этого на вашем изображении будут артефакты. PNG, с другой стороны, использует сжатие без потерь, поэтому отображаемое изображение будет точно таким же, как и исходное несжатое изображение до первоначального сохранения.
В случае штрих-кодов точное попиксельное размещение черного / белого очень важно (вот и весь смысл), поэтому использование процедуры сжатия с потерями, такой как JPG, может быть очень плохим. Если вы используете двухмерный штрих-код, это будет еще хуже, и вашему сканеру может быть очень трудно точно считывать штрих-код. PNG полностью устранит эту проблему.