Это из-за того, как работает сжатие JPEG. Он пытается округлить соседние пиксели, которые похожи друг на друга, до аналогичных значений. Это приводит к потере деталей и блочности.
Это становится более заметным при увеличении уровня сжатия, т.е. точно что ты делаешь. Кроме того, вы делаете это в два этапа:
- Сжатие без потерь (PNG) в формат с потерями (JPEG).
- Сжатие с потерями в сжатие с потерями.
Ты будешь наверное получить лучший результат, перейдя от без потерь к сжатию с потерями в конечном качестве, таким образом применяя сжатие с потерями только один раз, например. с использованием jpeg:extent=300kb -полоса -качество 90 -масштаб 90%
в первой конверсии.
Кроме того, вы ничего не говорите о размере изображения и уровне детализации. Возможно, будет невозможно уменьшить его до 300 КБ и сохранить желаемое качество.
Чтобы избавиться от фоновых пятен, вы можете попробовать применить к документу пороговые значения в каком-либо программном обеспечении для редактирования изображений, заставив, например, все, что меньше определенного оттенка серого, быть белым.
Однако, независимо от того, что вы делаете, сжатие из формата без потерь 30 МБ в формат с потерями 300 КБ будет привести к заметному снижению качества.