Сохранение сюжета в TIFF с высоким разрешением для публикации (в R)

Журнал, в который мы отправляем статью, просит следующее:

Чтобы обеспечить наилучшее качество воспроизведения ваших рисунков, мы будем благодарны за файлы высокого разрешения. Все рисунки предпочтительно должны быть в формате TIFF или EPS ... График: 800 - 1200 т / д
Фото: 400 - 800 DPI
Color (only CMYK): 300 - 400 DPI (DPI = dots per inch)

Since I am sending a graph, I am trying to save it using tiff.

Here is the code I am using:

tiff(filename = "c:\\aaa.tiff", 
     res = 800, pointsize = 2)
plot(1:100)
dev.off()    

But sadly, it produces a very "bulky" image - and if I where to not use pointsize = 2, I would get the error message:

Error in plot.new() : figure margins too large

Any suggestions?

26
задан Falko 29 July 2015 в 11:03
поделиться

3 ответа

краткий ответ:

Это объемный файл, потому что чем выше разрешение растрового файла (TIFF), тем больше размер файла.

Другой вариант, EPS, похож на PDF или PS. Просто сохраните в любом из них.Это формат векторного изображения, который, по их словам, был приемлемым. Он будет более компактным и более качественным (если только ваш рисунок не содержит огромного количества точек или линий).

длинный ответ:

Один из форматов, который они просили, это TIFF, растровый формат. Он сохраняет информацию как значение, представляющее каждый пиксель изображения. Если изображение 100 DPI и 5-дюймовый квадрат, то это 500x500, и оно сохраняет 250000 пикселей информации. По мере того, как разрешение изображения становится выше, а размер изображения остается постоянным, количество необходимых точек информации увеличивается. При 200 DPI это 1000x1000 и 1e6 пикселей информации. Это объясняет, почему ваш файл такой громоздкий.

Чтобы получить качественное напечатанное изображение размером 5 дюймов, вам потребуется около 300-400 DPI (точек на дюйм). Таким образом, вы не увидите каждый из этих отдельных маленьких пикселей, составляющих изображение. Если разрешение меньше, то размер изображения по-прежнему 5 x 5 дюймов, но каждый отдельный квадратный блок (пиксель), из которого состоит изображение, настолько велик, что его можно увидеть. Вот почему они попросили эту резолюцию. В противном случае текст и линии на графиках будут выглядеть блочными, неровными или размытыми. Вот почему текст на экране вашего компьютера (в наши дни всего около 100 точек на дюйм) не так высокого качества, как напечатанный на листе бумаги (обычно не менее 300 точек на дюйм).

Другим форматом, который они запросили, был EPS. Это инкапсулированный постскриптум. Поскольку это файл с одной страницей, PS или постскриптум будут эквивалентны. И PDF тоже похож. Это все векторные форматы, по сути, один и тот же векторный формат (они также могут содержать изображения в растровом формате, но давайте проигнорируем это).

Файл векторного формата сохраняет информацию о том, как было нарисовано изображение, но не о каждом пикселе. Если у вас есть ось x длиной 3 дюйма, расположенная на расстоянии 0,5 дюйма от нижней части изображения, то векторный файл знает это описание. Каждая функция графика описана в файле. Из-за этого для простых рисунков это гораздо более компактно, чем любое растровое представление при заданном качестве изображения. Кроме того, он масштабируется в размере без потери качества. Вы просто просите его нарисовать изображение размером 6 x 6 дюймов вместо 5 x 5 дюймов, и он также масштабирует каждую из инструкций по рисованию компонентов изображения. Поэтому, несмотря на то, что файл PDF или EPS будет более компактным, он будет печататься с самым высоким качеством.

Отправьте файл PDF или PS и не беспокойтесь о разрешении.

18
ответ дан 28 November 2019 в 06:48
поделиться

Вы должны использовать параметр сжатия.

Например:

tiff("outfile.tif", compression = "lzw")

LZW — это формат сжатия без потерь, поэтому вы не потеряете никаких данных, но определенно уменьшите размер файла.

28
ответ дан 28 November 2019 в 06:48
поделиться

Когда вы увеличиваете разрешение (res), эффективный размер графика уменьшается, поэтому выскакивает погрешность. Попробуйте сделать большую картинку с большей шириной и высотой (по идее, чтобы сделать график такого же виртуального размера, он должен быть new_(width|height)=res /72*old_(ширина|высота).
Тем не менее, как предложил Ромунов, лучше использовать ImageMagick; вы не потеряете качество.

11
ответ дан 28 November 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: