Как сделать снимок экрана без тени позади него?

57

Если взять скриншот с Shift ⇧+ Command ⌘+ 4+ Space, то я получаю одну из двух изображений:
сине-с-фокусом
сине-шо-фокус

В любом случае сохраненное изображение окружено ореолом тени. Затем я мог бы отредактировать его вручную (используя Предварительный просмотр), чтобы отбросить тень, или я мог бы использовать Shift ⇧+ Command ⌘+ 4и попытаться точно определить границу вручную, но ни один из них не позволяет мне легко получить идеальную для пикселя границу.

Есть ли удобный способ сохранить окно без тени?

Калаф
источник
7
Быстрое решение, опубликованное @ asherkin ниже : Удерживайте клавишу Option во время нажатия (после выполнения Cmd-Shift-4, Space dance), и сохраненный снимок экрана не будет иметь тени!
iolsmit

Ответы:

63

Вы можете отключить тень, добавленную при захвате всего окна, выполнив следующую команду из Терминала:

defaults write com.apple.screencapture disable-shadow -bool TRUE

Вам нужно будет перезагрузить или перезапустить UIServer, чтобы изменения вступили в силу:

killall SystemUIServer

Вы можете отменить это предпочтение и повторно включить тени, выполнив следующее:

defaults write com.apple.screencapture disable-shadow -bool FALSE; killall SystemUIServer
Gerry
источник
6
Технически, новая версия OSX вообще не имеет этого значения по умолчанию. Бег defaults read com.apple.screencapture disable-shadowдает вам The domain/default pair of (com.apple.screencapture, disable-shadow) does not exist. Поэтому более точный способ отменить изменение - с defaults delete com.apple.screencapture disable-shadow.
Бруно Броноски
1
Обязательно ознакомьтесь с лучшим ответом! apple.stackexchange.com/a/120017/41827
Бруно Броноски
работает на macOS Sierra
Surinder Singh
Не беспокойтесь об изменении настроек. Проверьте ответ ниже.
Вик Джанг
87

Я знаю, что это старый вопрос - но я никогда не смогу найти эту информацию при поиске (просто информацию в принятом ответе, чтобы отключить ее глобально), и в итоге просто пробую случайные ключи каждый раз.

Если вы удерживаете Option во время нажатия (после выполнения Cmd-Shift-4, Space Dance), сохраненный снимок экрана не будет иметь тени.

Я не уверен, относится ли это только к Горному льву и позже.

asherkin
источник
2
Работает в Маверикс. Это потрясающе!
daGUY
2
Превосходно - самый простой ответ на сегодняшний день!
Джеймс Адам
2
Работает и в El Capitan!
LunaCodeGirl
2
Это настоящий ответ. @Calaf вы должны изменить свой выбор, если это возможно.
Эрик Варнке,
3
Работает в macOS Sierra тоже.
xuchunyang
22

Другой вариант заключается в использовании screencapture:

screencapture -oic

-oотключает тени, -iзахватывает область и -cкопирует изображение в буфер обмена.

Это будет использовать таймер 5 секунд и сохранить изображение в файл:

screencapture -oi -T5 /tmp/screencapture.png

Запустите, screencapture -hчтобы увидеть все варианты:

$ screencapture -h
screencapture: illegal option -- h
usage: screencapture [-icMPmwsWxSCUtoa] [files]
  -c         force screen capture to go to the clipboard
  -C         capture the cursor as well as the screen. only in non-interactive modes
  -d         display errors to the user graphically
  -i         capture screen interactively, by selection or window
               control key - causes screen shot to go to clipboard
               space key   - toggle between mouse selection and
                             window selection modes
               escape key  - cancels interactive screen shot
  -m         only capture the main monitor, undefined if -i is set
  -M         screen capture output will go to a new Mail message
  -o         in window capture mode, do not capture the shadow of the window
  -P         screen capture output will open in Preview
  -s         only allow mouse selection mode
  -S         in window capture mode, capture the screen not the window
  -t<format> image format to create, default is png (other options include pdf, jpg, tiff and other formats)
  -T<seconds> Take the picture after a delay of <seconds>, default is 5
  -w         only allow window selection mode
  -W         start interaction in window selection mode
  -x         do not play sounds
  -a         do not include windows attached to selected windows
  -r         do not add dpi meta data to image
  -l<windowid> capture this windowsid
  -R<x,y,w,h> capture screen rect
  files   where to save the screen capture, 1 file per screen

Вы также можете использовать toggle-osx-shadows, чтобы отключить тени везде в OS X:

git clone https://github.com/pufuwozu/toggle-osx-shadows.git;cd toggle-osx-shadows;make;mv toggle-osx-shadows /usr/local/bin;toggle-osx-shadows

LRI
источник
2
также очень полезно, когда кто-то хочет захватить из сценария.
Калаф
7

Просто используйте Shift ⇧+ Command ⌘+ 4+ Spaceи удерживайте, optionкогда вы нажимаете, чтобы выбрать окно.

hklel
источник
Почему никто не видел это раньше?
Манго
4

Еще одним полезным вариантом является использование TinkerTool . Перейдите в TinkerTool и на вкладке «Общие» вы найдете параметр, позволяющий отключать тени только при создании снимков экрана (наряду с рядом других связанных параметров):

daviesgeek
источник
1

Просто удерживайте клавишу «Option», пока снимаете окно.

Сергей Иващенко
источник