Jak zrobić zrzut ekranu bez cienia za nim?

57

Jeśli zrobię zrzut ekranu za pomocą Shift ⇧+ Command ⌘+ 4+ Space, to otrzymam jeden z dwóch obrazów:
niebieski z ostrością
niebieski-wo-focus

Tak czy inaczej zapisany obraz jest otoczony aureolą cienia. Mógłbym następnie edytować go ręcznie (używając podglądu), aby odrzucić cień, lub mógłbym użyć Shift ⇧+ Command ⌘+ 4i spróbować ręcznie określić granicę, ale żaden z nich nie pozwala mi łatwo uzyskać granicy piksela.

Czy istnieje wygodny sposób na zapisanie okna bez jego cienia?

Calaf
źródło
7
Szybkie rozwiązanie zamieszczone przez @ asherkin poniżej : Przytrzymaj klawisz Opcja, klikając (po wykonaniu Cmd-Shift-4, Space dance), a zapisany zrzut ekranu nie będzie miał cienia!
iolsmit,

Odpowiedzi:

63

Możesz wyłączyć cień dodany podczas przechwytywania całego okna, wykonując następujące polecenie z terminala:

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

Musisz ponownie uruchomić lub ponownie uruchomić UIServer, aby zmiany odniosły skutek:

killall SystemUIServer

Możesz cofnąć tę preferencję i ponownie włączyć cienie, wykonując następujące czynności:

defaults write com.apple.screencapture disable-shadow -bool FALSE; killall SystemUIServer
Gerry
źródło
6
Technicznie rzecz biorąc, nowa instalacja OSX wcale nie ma takiej domyślnej. Bieganie defaults read com.apple.screencapture disable-shadowdaje The domain/default pair of (com.apple.screencapture, disable-shadow) does not exist. Dlatego najdokładniejszym sposobem cofnięcia zmiany jest defaults delete com.apple.screencapture disable-shadow.
Bruno Bronosky,
1
Koniecznie sprawdź lepszą odpowiedź! apple.stackexchange.com/a/120017/41827
Bruno Bronosky
działa na macOS Sierra
surinder singh
Nie zawracaj sobie głowy zmianą ustawień. Sprawdź odpowiedź poniżej.
Vic Jang,
87

Wiem, że to stare pytanie - ale nigdy nie mogę znaleźć tych informacji podczas wyszukiwania (tylko informacje w zaakceptowanej odpowiedzi, aby wyłączyć je globalnie), i za każdym razem próbuję losowych kluczy.

Jeśli przytrzymasz Option podczas klikania (po wykonaniu Cmd-Shift-4, Space dance), zapisany zrzut ekranu nie będzie miał cienia.

Nie jestem pewien, czy dotyczy to tylko Mountain Lion i później.

asherkin
źródło
2
Działa w Mavericks. To cudownie!
daGUY
2
Znakomity - zdecydowanie najłatwiejsza odpowiedź!
James Adam
2
Działa również w El Capitan!
LunaCodeGirl
2
To jest prawdziwa odpowiedź. @Calaf powinieneś zmienić swój wybór, jeśli to możliwe.
Eric Warnke,
3
Działa również w systemie macOS Sierra.
xuchunyang
22

Inną opcją jest użycie screencapture:

screencapture -oic

-owyłącza cienie, -iprzechwytuje obszar i -ckopiuje obraz do schowka.

Spowoduje to użycie timera 5 sekund i zapisanie obrazu w pliku:

screencapture -oi -T5 /tmp/screencapture.png

Uruchom, screencapture -haby wyświetlić wszystkie opcje:

$ 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

Możesz także użyć przełącznika osx-shadows, aby wyłączyć cienie w całym systemie 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
źródło
2
również bardzo przydatne, gdy chce się przechwycić ze skryptu.
Calaf
7

Wystarczy użyć Shift ⇧+ Command ⌘+ 4+ Spacei przytrzymać, optionkiedy klikniesz, aby wybrać okno.

Hklel
źródło
Dlaczego nikt tego wcześniej nie widział?
Manngo
4

Inną przydatną opcją jest użycie TinkerTool . Przejdź do TinkerTool i na karcie Ogólne znajdziesz opcję wyłączenia cieni tylko podczas robienia zrzutów ekranu (wraz z kilkoma innymi pokrewnymi opcjami):

daviesgeek
źródło
1

Przytrzymaj klawisz Opcja podczas robienia zrzutu ekranu okna.

Sergii Iwaszczenko
źródło