Hocam en kolayı screenshotu sıkıştıracan tabi, normal bi ekran grüntüsü 5MB falan dır. PNG yapabilirsin. 250 kblara kadar iner. Ama asıl yapman gereken bir nceki ekran grüntüsü ile farkı almak. bunu her pixelin RGB değerlerini nceki ile xorlayarak yapabilirsin ama c# ı kasar bu, native winapi kullanıyor olsan Bitblt parametreleri ile bunu yapabilirdin. Bence GetDesktopWindow GetDc, Bitblt apilerini çağırarak yapmalısın. nceki ekran grüntüsüyle farkı almanın bir başka yolu da genelde webcam iletişiminde kullanılan motionjpeg sıkıştırması, resimlerde küçük kayıpların nemi olmadığından bu daha iyi olurdu. fakat bunu nceden kullanmadım libraryleri free olarak varmı bilmiorum. HolyOne tarafından 04/Haz/14 12:49 tarihinde düzenlenmiştir Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı ktektir!

Merhaba Arkadaşlar, Şimdi projemde client pc nin ekranını server yardımıyda admin pc ye aktarmak istiyorum şimdilik server a aktardım grüntüyü ama işin başındayken şunu merak ediyorum ScreenShot aldıktan direk gndermeden nce ne yapmalıyım malum network kullanımını düşünmem lazım ekranın kalitesini düşürmeyi planlıyorum ama başka ne yapabilirim yada en iyi yol hangisidir acaba. yardımlarınız için şimdiden teşekkürler.

holy nin dediğine ek olarak sıkıştırma için gzip kullanılabilir. sonra bunu byte dizisine convert edip yollayacaksın. kendine uygun bir sıkıştırma algoritması da geliştirebilirsin ama bunlar biraz daha ileri seviye konular. benim daha nce grdüğüm kodlarda sıkıştırma için gzip kullanılıyor , yine holy nin bahsettiği api lerle ekran grüntüsü alabilirsin ama c# da api kullanmasına girmeden de yapabilirsin. okuduğum kadarıyla. net framework 4.0 da bu tarz api kullanımı çalışmıyormuş Unfortunately, this overload has a critical bug that prevents this from working. It doesn't validate the value properly. Still not fixed in. NET 4.0. There is no other good fix but fall back to using P/Invoke to make the screen shot. Here's an example: Not : api detayları için pinvoke. net sitesini kullanabilirsin şu tarz bi kod ile bitmap elde edersin private static Bitmap GetScreenShot { Bitmap bitmap = new Bitmap(Screen. PrimaryScreen. Bounds. Width, Screen. PrimaryScreen. Bounds. Height, PixelFormat. Format32bppArgb); using (Graphics graphics = Graphics. FromImage return bitmap; } sonra byte arr = resim. ToByteArray ; şeklinde byte dizisine dnderirsin.. bunu da gzip ile sıkıştırırsan istediğini elde edersin diye düşünüyorum. ama amacın sık sık resim yollamak ise bu yol performanslı değildir, onun için de teamviewer ın mantığını kullanmak gerekecek. Çekilen tüm resmi tarayıp değişen blgenin bilgisini yollayacaksın. Bu sayede tüm resmi yollamaktan kurtulmuş olursun. Bunla ilgili open source projeler mevcut onlara bakabilirsin. kolay gelsin Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hocam c# dan anlamam ama ekran grüntüsünü resim formatında değilde base64 ile encode edip text formatında transfer edersen serverda data:image ile yazdırırsan epey bişeyden kar edebilirsin gibi grünüyo.