2011-07-20 66 views
0

我正在研究可能創建的應用程序,該應用程序允許我以指定的分辨率截取特定窗口(在本例中爲瀏覽器)的屏幕截圖。以指定分辨率截圖

我真的不想真正改變我的顯示器分辨率。我想要做的是能夠得到一個截圖,因爲它會出現在800x600,1024x768等等。

我知道如何使用.net/c#截圖,但我想知道是否有一個「欺騙」它以不同的分辨率採取一種方式(可能沒有,但我想我會問,所以請原諒這個潛在的愚蠢問題)。

乾杯

+1

只是調整有問題的窗口爲800x600並且只捕獲窗口。生成的圖像將在800x600。 –

+0

我認爲有一種方法可以通過編程來完成這個任務嗎?它是在.NET框架還是我將鑽研到winapi? – AndrewC

回答

0

那麼如果你的意思是做的一切將如何看時,分辨率爲800×600的屏幕截圖。你不能這樣做。因爲Windows將使一切變得更大,重新定位圖標等。

如果您的意思是將屏幕截圖的大小調整爲另一個分辨率,則這非常簡單,並且可以在C#中輕鬆使用。

+0

我的意思是你提到的第一件事。因爲它會看到800x600。我很想知道某個特定頁面的佈局是否在任何分辨率下可視化地打破。 – AndrewC

0

看着你的評論:「我很想知道某個特定頁面的佈局是否在任何分辨率下都可視化地打破了」,只是屏幕截圖是錯誤的方式。關於你的porgram,我只是從帖子中扣除,你有動態佈局,你想測試不同的分辨率,以查看其中的用戶體驗。

  1. 我不認爲,這是很好的解決方案,使自動化,只需人工爲很多東西嘗試只是看圖像無法想通。

  2. 如果你的方式要做到這一點:

    下面是一個示例如何屏幕分辨率從更改代碼:Screen resolution change from C#

這裏是代碼如何從屏幕截圖屏幕,基於座標。因此,與小竅門,你將能夠使其活動窗口太:

Capturing Screen in C#

換句話說,如果我undesrtand你要真的是,屏幕的第一個變化的分辨率,使快照之後。

希望這會有所幫助。

+0

我不需要在每個分辨率下對網站進行詳細檢查,只需一眼就可以看到細節檢查將在稍後完成。所以現在截圖是我需要給我一個快速概述。我的主要興趣是判斷每個分辨率的空白量,而不是檢查發生的任何html細微差別。乾杯 – AndrewC

+0

好吧,檢查我的答案,以便... – Tigran

1

截取屏幕截圖並將原始圖像保存爲期望的分辨率。

這裏的代碼片段驗證這個想法:

Bitmap bmp_with_actual_resolution = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height); 
Graphics g = Graphics.FromImage(bmp_with_actual_resolution); 
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size); 
Bitmap bmp_800_600 = new Bitmap(800, 600); 
Graphics g_800_600 = Graphics.FromImage(bmp_800_600); 
g_800_600.DrawImage(bmp_with_actual_resolution, 0, 0, 800, 600); 
bmp_800_600.Save("D:\\file_800_600.jpg", ImageFormat.Bmp); 
Bitmap bmp_1024_768 = new Bitmap(1024, 768); 
Graphics g_1024_768 = Graphics.FromImage(bmp_1024_768); 
g_1024_768.DrawImage(bmp_with_actual_resolution, 0, 0, 1024, 768); 
bmp_1024_768.Save("D:\\file_1024_768.jpg", ImageFormat.Bmp); 
+0

@Eranga也許...那又如何?這只是爲了展示這個想法 –