Как я могу запретить моему дисплею Retina делать снимки экрана в 2 раза?

Недавно у меня появился MacBook с дисплеем Retina, и все мои скриншоты (через ⌘ CMD+ ⇧ SHIFT+ 3или ⌘ CMD+ ⇧ SHIFT+ 4) в конечном итоге в два раза больше по сравнению с тем, как они выглядят на экране.

Например, вот скриншот логотипа Ask Different, сделанный ⌘⇧4на MacBook Pro с сетчаткой под управлением macOS 10.15.7:

введите описание изображения здесь

Когда файл открывается локально в режиме предварительного просмотра или быстрого просмотра, он отображается в том же размере, что и логотип веб-сайта. Но при загрузке в Интернет он отображается в два раза больше.

Как я могу предотвратить это?

Загрузите расширение Google Chrome для захвата экрана и откройте изображение в Google Chrome. Затем используйте расширение вместо опции macbook.

Ответы (12)

Вот наиболее удобное решение (взято с http://www.quora.com/How-can-I-get-my-retina-Mac-to-not-take-screenshots-that-are-too-big и изменено немного)

Используйте встроенный в OSX Automator для автоматического уменьшения размера снимков экрана после их создания.

  1. Открыть /Приложения/Автоматизатор
  2. Создайте «Действие с папкой»
  3. В верхней части окна, где написано «Действие папки получает добавленные файлы и папки», выберите «Рабочий стол».
  4. На панели слева выберите «Файлы и папки» и перетащите элемент «Фильтровать элементы Finder» на правую панель.
  5. Добавьте следующие условия в действие «Фильтровать элементы поиска»: Имя начинается с «Снимок экрана»; Вид — это образ.
  6. (Необязательный шаг: если вы хотите сохранить копии оригиналов) - В списке действий слева найдите «Копировать элементы Finder» и перетащите его на панель справа. Укажите папку назначения для копии изображения (например: «Кому: Изображения»)
  7. В библиотеке действий слева нажмите «Фотографии» и перетащите действие «Масштабировать изображения» на правую панель.
  8. В действии «Масштабировать изображения» выберите «По процентам» в раскрывающемся списке и установите значение 50.
  9. Выберите «Файл» > «Сохранить» и присвойте действию «Папка» короткое имя, например «Меньшая копия снимка экрана».

Скриншот

Вот сохраненный файл рабочего процесса

ТИЛ об Автомататоре!
Кажется, это не работает в Мохаве (по крайней мере, в бета-версии). Я могу запустить это на отдельном элементе, и это работает, но автомат не запускается, когда делается снимок экрана, возможно, потому, что Mojave теперь сразу же вызывает предварительный просмотр редактирования в стиле iOS в углу.
быстрое обновление: кажется, что обновление до Мохаве (по крайней мере, для меня) потребовало от меня щелчка правой кнопкой мыши по моей папке и настройки/активации действий с папкой в ​​разделе «Службы» (хотя мне никогда не приходилось делать этого раньше). Как только я это сделал (и отключил предварительный просмотр углов для скриншотов), это действие снова работает.
Отличная идея, но что, если у вас есть два экрана — один с разрешением 2x DPI, а другой — нет?
работает как шарм!
Работает, как описано, но есть еще следующая проблема: когда файлы вставляются в программы Mac, размер не нужно уменьшать. Например, в электронное письмо Mail. Но при вставке в другие программы, такие как Evernote, обычное действие вызывает визуальное удвоение, и вы хотите уменьшить размер. Решение, по-видимому, состоит в том, чтобы добавить необязательный шаг для создания копии файла и, таким образом, иметь две версии. Но лучше бы не в другой папке, а на рабочем столе, но с соответствующим переименованием. С модификацией для этого пока не разобрался.
Это замечательно! Чтобы сохранить оригинал И измененный размер, просто добавьте переименование при копировании изображения в папку «Изображения». Затем вы можете настроить второй сценарий автоматизатора, который просматривает папку с изображениями на предмет переименованных файлов, и когда он видит один, он перемещает его обратно на рабочий стол. (Переименование необходимо, чтобы не создавать бесконечный цикл файлов с префиксом «Снимок экрана»)

Вот как я справляюсь с этим. Это запутанно, но работает и не прерывает мой захват экрана -> рабочий процесс вставки дико... Я просто делаю снимок экрана, вызываю рабочий процесс Альфреда, а затем вставляю.

CMD-CTRL-SHIFT-4захватит часть экрана. Этот раздел копируется в буфер обмена OSX. Затем я запускаю скрипт в терминале, чтобы сохранить содержимое буфера обмена во временный файл, изменить размер наполовину (72 dpi — это половина от 144 dpi) и скопировать изображение обратно в буфер обмена. Это требует использования нескольких утилит - если кто-то знает, как сделать то же самое с помощью одной простой утилиты, пожалуйста, дайте мне знать.

Я запускаю этот скрипт от Альфреда, чтобы упростить доступ к:

#!/bin/bash
pngpaste /tmp/ss.png
width=$((`sips -g pixelWidth /tmp/ss.png | cut -s -d ':' -f 2 | cut -c 2-` / 2))
sips -Z $width /tmp/ss.png
impbcopy /tmp/ss.png

pngpasteнаходится на github: https://github.com/jcsalterego/pngpaste . sipsпоставляется с OS X. impbcopyнаходится здесь: http://www.alecjacobson.com/weblog/?p=3816

У LifeHacker была статья о sips http://lifehacker.com/5962420/batch-resize-images-quickly-in-the-os-x-terminal , на которую я ссылался, а также на эту суть: gist.github.com/lanceli. /4966207.

Для Альфреда я только что создал рабочий процесс, который запускает это как сценарий bash:

/Users/yourusername/bin/shrink_clipboard > /dev/null 2&>1
Теоретически мне это нравится, но для меня это либо искажает изображение, либо делает его размытым до неузнаваемости...
@Ze'ev Попробуйте заменить строки 2 и 3 на это:/usr/bin/sips -s dpiHeight 72.0 -s dpiWidth 72.0 /tmp/ss.png
Ага ... на самом деле проблема заключается в «ошибке» в Google Chrome , которая неправильно передискретизирует изображения. Если я вставлю тот же буфер обмена в Mail.app, он будет выглядеть правильно. Таким образом, этот обходной путь эффективно масштабирует изображение для «резкой» вставки в Chrome, и затем вы можете изменить его размер с помощью угла изменения размера Gmail... пока они не исправят это...
@Ze'ev, это не только Chrome. Любое приложение, которое отбрасывает информацию о DPI, будет отображать изображение неправильно. В данном случае это комбинация вещей: (другая) ошибка в Chrome приводит к изменению размера изображения поверх потери информации о DPI, что делает его еще хуже.
Я обнаружил, что следующий файл обеспечивает наименьший размер файла без ущерба для качества:screencapture -ioW $SCREENSHOT && pngquant -f --ext .png --skip-if-larger $SCREENSHOT && impbcopy $SCREENSHOT

Два обходных пути:

  1. Если у вас внешний монитор не Retina, перетащите туда окно приложения и сделайте снимок экрана. Это то, что я делаю большую часть времени.

  2. Это работает только в браузерах. Нажмите пару раз ⌘CMD+ , чтобы уменьшить шрифт до 50%, а затем скрин.-

Например:

введите описание изображения здесь

Очевидно, макет может немного измениться, но это может быть хорошо в зависимости от ваших потребностей.

умные обходные пути!

Лучше всего использовать стороннюю утилиту, например RetinaCapture .

Это довольно громоздко в использовании, но дает вам то, что вы ищете, и предоставляет возможность одновременного создания снимков экрана в 1x и 2x, что полезно, если вы создаете веб-сайт:

введите описание изображения здесь

введите описание изображения здесь


Я ожидаю, что где-то есть настройка для этого ( com.apple.screencaptureкажется лучшим кандидатом); но я не могу найти его.

Удивительно, но до сих пор нет системной опции для этого.
  1. Сделайте снимок экрана.
  2. Вставьте скриншот в Evernote.
  3. Скопируйте скриншот из Evernote.
  4. Вставьте скриншот в нужное место.
Хорошо, я поместил его в помощник Evernote (в строке меню) и работает.

Я использовал гибрид ответов Дэна Ки и Джастина Паркера и создал рабочий процесс Automator, который выполнял сценарий bash.

Рабочий процесс автоматизатора

Это создает копию исходного файла, а также принимает несколько входных данных. Просто экспортируйте как приложение, а затем перетащите в него что-либо, чтобы получить версию «без сетчатки» с разрешением 72ppi и разрешением в два раза меньше пикселя.

Баш-код:

for f in "$@"
do
    width=$((`sips -g pixelWidth "$f" | cut -s -d ':' -f 2 | cut -c 2-` / 2))
    sips -s dpiHeight 72.0 -s dpiWidth 72.0 -Z $width "$f"
done
Разве вам не нужно брать максимальную ширину и высоту, если вы собираетесь использовать -Zопцию, sipsкоторая делает это: «Пересэмплировать изображение, чтобы высота и ширина не превышали указанный размер»?

Если вы ищете простое одноразовое решение, вы можете изменить размер изображения в приложении Preview (взято отсюда ):

  1. Откройте снимок экрана в режиме предварительного просмотра
  2. Выберите «Настроить размер…» в меню «Инструменты».
  3. Измените ширину и высоту на 50 процентов от оригинала.
  4. Измените разрешение на 72 пикселя/дюйм.

Кстати, вы также можете увидеть метаданные изображения (dpi, размер и т. д.) в приложении Preview, просто нажмите Tools > Show Inspector(взято отсюда ).

Но на самом деле это пересэмплирует изображение, отбрасывая 50% его. То, что вы хотите, это просто изменить разрешение на 72 dpi.
Это эквивалентно изменению размера изображения в графическом редакторе. Вы потеряете качество.

Когда вы говорите, что ваши скриншоты «становятся» в два раза больше, я подозреваю, что вы отправляете их людям, которые просматривают их на дисплеях без сетчатки. Если это так, то этого и следовало ожидать — плотность пикселей на вашем дисплее выше, поэтому, когда они просматривают снимок экрана, сделанный с вашего компьютера, на своем, он будет казаться физически больше.

Одним из обходных путей для этого, если вы отправляете снимки экрана через OS X Mail, является установка для параметра «Размер изображения» для вложенных изображений значения «Большой» вместо «Фактический размер». Это уменьшит масштаб прикрепленного изображения, чтобы оно выглядело «нормальным» при просмотре на дисплее без сетчатки.

Есть много случаев, когда ваш снимок экрана Retina будет выглядеть в два раза больше, даже на вашем собственном дисплее Retina. Загрузка на любой веб-сайт, который игнорирует настройку DPI, для начала.
@SteveBennett PNG, созданные путем создания снимков экрана, не имеют информации о DPI.
Ха, это разочаровывает.
Нет, 72 dpi является стандартным для Интернета . Посмотрите на четкий пример, который я привел к вопросу (удивительно, что вы никогда этого не замечали). Тот факт, что Apple принимает решение сохранить его с разрешением 144 dpi, на данный момент является для них просто плохим решением. (Конечно, может быть, через 20 лет «все» будут абстрагироваться от концепции DPI, как это сейчас делает Apple. Пока это совершенно бесполезно и глупо.)
«Файлы PNG, созданные с помощью снимков экрана, не содержат информации о DPI». Чтобы увидеть информацию о DPI, вам нужно только открыть в режиме предварительного просмотра (то есть «двойной щелчок») и посмотреть на информационную панель, которая дает информацию о DPI.

используйте следующий аддон для firefox

https://addons.mozilla.org/en-US/firefox/addon/screengrab-fix-версия/

Пожалуйста, добавьте некоторую информацию, что он делает и т.д.

Щелкните правой кнопкой мыши службу рабочего процесса Automator

Здесь есть несколько отличных ответов, но я хотел что-то более необязательное и менее автоматическое.

Я создал новую службу в Automator под названием « Создать версию без Retina» , которую можно вызвать, щелкнув правой кнопкой мыши любой файл изображения в Finder.

Вот как это используется:

1. Найдите изображение сетчатки.

введите описание изображения здесь

2. Щелкните правой кнопкой мыши изображение сетчатки и найдите наш новый сервис внизу.

введите описание изображения здесь

3. Генерируется изображение без Retina (масштаб 50%).

введите описание изображения здесь

Результат

Изображение по умолчанию:

введите описание изображения здесь

Изображение без сетчатки:

введите описание изображения здесь

Рабочий процесс автоматизатора

Это достаточно просто создать самостоятельно (чувак, Automator — скрытая и забытая жемчужина в MacOS), но вот рабочий процесс, который вы можете скачать и дважды щелкнуть, чтобы установить.

Рабочий процесс создания версии без Retina

Monosnap может сделать это очень хорошо. Есть расширенная настройка «Уменьшить снимки Retina».

Он имеет аналогичный ярлык области захвата ⌥ Option+ ⌘ CMD+ 5, который копирует изображение в буфер обмена.

Помимо этого, он может делать гораздо больше, например, делать записи экрана и напрямую загружать снимки экрана в Интернет для удобного обмена.

Я использую действие папки и небольшой сценарий Perl. Это изменит имя файла исходного снимка экрана на более удобное и создаст вторую версию с уменьшенным разрешением. Моя настройка заключается в том, что у меня есть место, ~/Pictures/Screenshotsгде заканчиваются файлы.

Вот шаги по его настройке. Конечно, вы должны создать вышеуказанную папку. Затем создайте файл .plist с содержимым, например

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.domain.renamescreenshots</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/you/Library/LaunchAgents/rename-screenshots.sh</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Users/you/Desktop</string>
    </array>
</dict>
</plist>

где youдолжно быть ваше имя пользователя. И сохраните это как/Users/you/Library/LaunchAgents/some.domain.renamescreenshots.plist

Обратите внимание на WatchPathsпараметр, который указывает, где ОС будет отслеживать изменения. Здесь снимки экрана заканчиваются по умолчанию.

В той же папке вы создаете скрипт Perl, например

#! /usr/bin/perl
for my $f (</Users/you/Desktop/Bil*>) {
    if ($f =~/Bil.*(\d{4})-(\d{2})-(\d{2}) um (\d{2})\.(\d{2})\.(\d{2})\.png/) {
      $dest = "/Users/you/Pictures/Screenshots/pic$1$2$3$4$5$6";
      $res = `file "$f"`;
      $res =~ /.* (\d+) x (\d+),.*/;
      $half = $1/2;
      `mv "$f" $dest.png`;
      `/usr/bin/sips -Z $half $dest.png -o $dest.2.png`;
    }
}

который выполняет фактическое преобразование, и сохраните его как /Users/you/Library/LaunchAgents/rename-screenshots.sh(как указано в .plist). Обратите внимание, что снова youдолжны быть заменены. Также /Users/you/Desktop/Bil*необходимо настроить источник. Поскольку это немецкий язык, они начинают с Bil(и еще немного текста, включая формат даты ГГГГ-ММ-ДД плюс время после слова «гм», означающего в). Это будет отличаться для каждой страны, поэтому необходимо настроить путь/регулярное выражение. Затем имя файла назначения форматируется как picYYMMDDHHMMSS.png. Наконец, sipsбудет создана уменьшенная копия этого файла с суффиксом «2» для имени.

Чтобы начать все это, вам нужно зарегистрировать службу через

launchctl load /Users/you/Library/LaunchAgents/some.domain.renamescreenshots.plist 

Это запустит сценарий, когда будет сделан снимок экрана. (unload отменит регистрацию службы, если она вам больше не нужна.)

Примечание . Вышеупомянутое может вызвать некоторые затруднения при установке. Я регулярно забываю, как и где его настроить. И .shэто ерунда, как и должно быть .pl, но это тоже история. Это просто работает. Первоначально (до этого ответа) у меня был скрипт только для переименования снимка экрана. Но меня раздражали раздутые снимки экрана, которые мне были нужны для StackOverflow. Поэтому я нашел это sipsздесь и включил его.