PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : screencapture von 32bit auf 16bit?



Bloober
06.05.2010, 12:35
hi

hab mir n Überwachungstool gecoded mit eingebauter Capurefunktion wobei das Pic auf nen ftp geladen wird.

Beim Screencapture funtioniert auch alles super, das uploaden auch, nur wenn die Auflösung den Monitors zu hoch ist (zb 1280x1024) dauert es echt lange bis das Bild aufm FTP is ....

Jetzt wollt ich von euch wissen wie ich das ändern kann, hab mir überlegt die Bitgröße von 32 auf 16 zu ändern, dadurch würd die Qualli vom Pic schlechter werden aber auch weniger MB, hab aber keinen Plan wieß gehen soll???

Oder habt ihr ne bessere Idee wie ich das Bild vorm upload verkleinern kann?

hier mal mein code:


Try


Dim Pic As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
Dim g As Graphics = Graphics.FromImage(Pic)
g.CopyFromScreen(0, 0, 0, 0, Pic.Size)
PictureBox1.Image = Pic
PictureBox1.Image.Save(My.Computer.FileSystem.Spec ialDirectories.Temp & "\pic.bmp")
My.Computer.Network.UploadFile(My.Computer.FileSys tem.SpecialDirectories.Temp & "\pic.bmp", "ftp://......")

Catch ex As Exception

Application.DoEvents()

Dim client As New Net.WebClient
client.Credentials = New Net.NetworkCredential("user", "pw")
client.UploadString("ftp://....)







End Try




End Sub

c2x
06.05.2010, 14:44
Benutz einfach mal folgendes, denn Bilder vom JPG-Format sind kleiner als BMP-Dateien.
Convert Bitmap to Another Image Format (VB.NET) (http://www.freevbcode.com/ShowCode.asp?ID=5799)

Bloober
06.05.2010, 15:25
erstmal danke für deine Antwort ... aber in jpg umwandeln is nich so gut, jpg is ca. 50% größer als bmp .... aber wenn ichs in gif format umwandel könnte es klappen!

ich teste das mal und meld mich dann wider



edit: habs hinbekommen... hier der code falls jemand brauch:



Imports System.Drawing.Imaging
Module Funktionen
Sub Screenshot_Test2()
Dim rect As Rectangle = Screen.AllScreens(0).Bounds
Dim ici() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()
Dim ep As New EncoderParameters(1)



ep.Param(0) = New EncoderParameter(Encoder.Quality, 25) '25% Qualität

Using bmp As Bitmap = New Bitmap(rect.Width, rect.Height), g As _
Graphics = Graphics.FromImage(bmp)
g.CopyFromScreen(0, 0, 0, 0, bmp.Size)
bmp.Save(Application.StartupPath & "\Screenshot.jpg", ici(1), ep)
End Using

End Sub
End Module