Bir Beta Testers raporlama modülü oluşturuyorum, böylece yazılımımda kendi yorumlarına gönderebiliyorlar, ancak rapor ile bir ekran görüntüsü ekleme seçeneğine sahip olmak istiyorum. Windows'da Python ile ekranın ekran görüntüsünü nasıl alabilirim? Linux'ta birkaç örnek buldum, ancak Windows'da fazla şans olmadı.Python ile Windows'ta ekran görüntüsünü alın?
cevap
ImageGrab'ın yalnızca MSWindows üzerinde çalıştığına dikkat çekmeye değer.
çapraz platform uyumluluğu, bir kişi wxPython kütüphanesi kullanarak kapalı iyi olabilir. http://wiki.wxpython.org/WorkingWithImages#A_Flexible_Screen_Capture_App
import wx
wx.App() # Need to create an App instance before doing anything
screen = wx.ScreenDC()
size = screen.GetSize()
bmp = wx.EmptyBitmap(size[0], size[1])
mem = wx.MemoryDC(bmp)
mem.Blit(0, 0, size[0], size[1], screen, 0, 0)
del mem # Release bitmap
bmp.SaveFile('screenshot.png', wx.BITMAP_TYPE_PNG)
AttributeError: 'modülü' nesne aksi takdirde alabilirsiniz hiçbir özelliği 'ni App' –
uygulama = wx.App() vardır: wx._core.PyNoAppError: Önce wx.App nesnesi oluşturulmalıdır! Ayrıca buradan wxPython indirmek: http://wxpython.org/download.php sadece –
CLI pencereler boş – olekb
Ekran görüntüsü almak için basit bir yolu pygame geçer. 'Surface' Eğer bir ekran görüntüsünü ve 'dosya' alıyor yüzeyi
pygame.image.save(Surface, filename)
Eğer thew görüntüyü kaydetmek dosya yolu, adını ve türüdür.
Sen BMP, TGA, PNG veya JPEG gibi dışa aktarabilirsiniz. Pygame 1.8'den itibaren, PNG ve JPEG de çalışıyor.
hiçbir dosya uzantısı belirtilmemişse bir .TGA dosyaya varsayılan olur.
Hatta belirli dosya dizinleri kaydetmek için 'os' kitaplığını kullanabilirsiniz.
Bir örnek:
import os
import pygame
surface = pygame.display.set_mode((100, 100), 0, 32)
surface.fill((255, 255, 255))
pygame.draw.circle(surface, (0, 0, 0), (10, 10), 15, 0)
pygame.display.update()
pygame.image.save(surface, os.path.expanduser("~/Desktop/pic.png"))
Bu
İki soru: 1. Pygame platformu bağımsız mı? 2. Çoklu monitör ekran görüntüsü alabilir misiniz? –
Bildiğim kadarıyla, Pygame platform bağımsızdır. Bu kod sadece pygame ekranını ve sadece pygame ekranını görüntüler.Ekranınız 2 monitöre yayılıyorsa, bunun mümkün olabileceğini düşünebilirim (ancak bunu test edemiyorum). Bu yardımcı olur umarım! – CPSuperstore
Sen ImageGrab modülünü kullanabilirsiniz pic.png olarak kullanıcının masaüstüne 'yüzey' Yüzey üzerinde bir şey kazandırır. ImageGrab sadece Windows üzerinde çalışır ve kullanmak için PIL (Yastık) gerekir.
import ImageGrab
snapshot = ImageGrab.grab()
save_path = "C:\\Users\\YourUser\\Desktop\\MySnapshot.jpg"
snapshot.save(save_path)
gerçekten hızlı bir diğer yaklaşım MSS modüldür: Burada biraz örnektir. Diğer çözümlerden sadece ctypes
standart modülünü kullandığı için farklıdır, dolayısıyla büyük bağımlılıklar gerektirmez. Bu işletim sistemi bağımsız ve kullanımı kolay oluşur:
from mss import mss
with mss() as sct:
sct.shot()
Ve tıpkı ilk monitörün ekran görüntüsünü içeren screenshot.png
dosyayı bulmak. Possibile özelleştirmelerin bir yeri vardır, pyautogui kullanıcıları için vb ScreenShot
nesneleri ve OpenCV/Numpy/PIL/..
https://python-mss.readthedocs.io/en/dev/examples.html – tal
@tal adresindeki diğer örnekleri inceleyin. Güncelleme yapabilir misiniz lütfen? –
@ Tiger-222: Birden fazla monitörü nasıl alırsınız? –
ile oynayabilir: http:
import pyautogui
screenshot = pyautogui.screenshot()
- 1. Web tarayıcısı kontrolünün ekran görüntüsünü alın?
- 2. Bir ASP.Net sayfasından ekran görüntüsünü alın
- 3. Ekran görüntüsünü belirleme Android
- 4. Harita görüntüsünü yarat Ekran
- 5. html5/javascript kullanarak tüm ekranın bir ekran görüntüsünü alın?
- 6. Bir web sayfasının ekran görüntüsünü yakalayın ve görüntü alın (ASP.NET)
- 7. Bir div görüntüsünü alın
- 8. Gizli masaüstü ekran görüntüsünü yakalama
- 9. Ekran görüntüsü alın
- 10. Bir Kullanıcı bir ekran görüntüsünü aldığında algılar
- 11. Python, base64 görüntüsünü ister
- 12. FileObserver Android ile sadece ekran görüntüsünü tespit edin
- 13. iPhone, artırılmış gerçeklik ekran görüntüsünü AVCaptureVideoPreviewLayer
- 14. Düzenledikten sonra yakalanan ekran görüntüsünü kaydettirin
- 15. Ekran görüntüsünü programla değiştirdikten sonra Brightness (Ekran Parlaklığı) Güncelleme
- 16. Ekran görüntüsünü tespit et Android 4.0+ +
- 17. Ekran görüntüsünü yakaladıktan sonra galeri nasıl yenilenir?
- 18. Selenyum [Python] içinde PhantomJS ile şeffaf ekran görüntüsü?
- 19. Ekran Görüntüsü CAEmitterLayer ile görüntüleme
- 20. Idea Intellij ile Ekran görüntüsü
- 21. Belirli bir UITableViewCell'in ekran koordinatlarını alın?
- 22. Bir videonun ekran görüntüsünü oluşturmak için ffmpeg kullanarak raylar
- 23. HTML2Canvas kullanmadan tam HTML sayfasının ekran görüntüsünü nasıl alırsınız?
- 24. Güncel Parçası alın ve Ekran Oryantasyon
- 25. defaultDeğerleme tamScreenImage on ALAsset tam ekran görüntüsünü döndürmez
- 26. Şu anda oynatılan videonun ekran görüntüsünü nasıl alırsınız?
- 27. Linux, ekran görüntüsünü yakalama ve fare hareketlerini taklit etme
- 28. Bir web sayfasının ekran görüntüsünü program aracılığıyla alma
- 29. Android - Bir projenin dokümantasyonu için bir telefonun ekran görüntüsünü yakalama
- 30. GLSurfaceView'in ekran görüntüsünü Android'deki başka bir diziden almak mümkün müdür?
Bu seferki benim için çalıştı // stackoverflow. com/sorular/4589206/python-windows-7-ekran-olmadan-pil'lik – User