Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - Screenshot  troppo pesanti
Forum - Delphi - Screenshot troppo pesanti

Avatar
kriptos (Normal User)
Newbie


Messaggi: 9
Iscritto: 16/03/2009

Segnala al moderatore
Postato alle 18:35
Mercoledì, 23/01/2013
Salve per fare screenshot utilizzo questo sorgente, ma il problema e che li file generato è troppo pesante(quasi 5MB)... Avete possibili soluzioni ???

Grazie

Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var DCDesk: HDC; // hDC of Desktop
  3.   bmp: TBitmap;
  4. begin
  5.   {Create a bitmap}
  6.   bmp := TBitmap.Create;
  7.    
  8.   {Set a bitmap sizes}
  9.   bmp.Height := Screen.Height;
  10.   bmp.Width := Screen.Width;
  11.  
  12.   {Get a desktop DC handle - handle of a display device context}
  13.   DCDesk := GetWindowDC(GetDesktopWindow);
  14.  
  15.   {Copy to any canvas, here canvas of an image}
  16.   BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
  17.          DCDesk, 0, 0, SRCCOPY);
  18.  
  19.   {Save the bitmap}
  20.   bmp.SaveToFile('ScreenShot.bmp');
  21.  
  22.   {Release desktop DC handle}
  23.   ReleaseDC(GetDesktopWindow, DCDesk);
  24.  
  25.   {Release a bitmap}
  26.   bmp.Free;
  27. end;


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:44
Mercoledì, 23/01/2013
Converti l'immagine in jpg


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 9:22
Venerdì, 25/01/2013
per salvarla in altri formati usa

Codice sorgente - presumibilmente Delphi

  1. //per salvarla in PNG
  2.  
  3. var PG: TPngImage;
  4. begin
  5.  
  6. PG := TPngImage.Create;
  7. PG.Assign(Image1.Picture.Bitmap);
  8. PG.SaveToFile('File.png');
  9. PG.Free;
  10.  
  11. end;



Codice sorgente - presumibilmente Delphi

  1. //per salvarla in JPEG
  2.  
  3. var JP : TJPEGImage;
  4. begin
  5.  
  6. JP := TJPEGImage.Create;
  7. JP.Assign(Image1.Picture.Bitmap);
  8. JP.SaveToFile('File.jpg');
  9. JP.Free;
  10.  
  11. end;


PM Quote
Avatar
kriptos (Normal User)
Newbie


Messaggi: 9
Iscritto: 16/03/2009

Segnala al moderatore
Postato alle 15:46
Venerdì, 25/01/2013
per i futuri utenti che consulteranno questo topic vi ricordo di aggiungere la libreria uses Jpeg;

Per invece coloro che mia hanno aiutato con questo sorgente GRAZIE. :k:

PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 17:57
Sabato, 26/01/2013
Testo quotato

Postato originariamente da systemgvp:

per salvarla in altri formati usa

Codice sorgente - presumibilmente Delphi

  1. //per salvarla in PNG
  2.  
  3. var PG: TPngImage;
  4. begin
  5.  
  6. PG := TPngImage.Create;
  7. PG.Assign(Image1.Picture.Bitmap);
  8. PG.SaveToFile('File.png');
  9. PG.Free;
  10.  
  11. end;



Codice sorgente - presumibilmente Delphi

  1. //per salvarla in JPEG
  2.  
  3. var JP : TJPEGImage;
  4. begin
  5.  
  6. JP := TJPEGImage.Create;
  7. JP.Assign(Image1.Picture.Bitmap);
  8. JP.SaveToFile('File.jpg');
  9. JP.Free;
  10.  
  11. end;




Aggiungo

Codice sorgente - presumibilmente Plain Text

  1. JP.CompressionQuality:= //Aggiungi un valore intero qui da 1 a 100



Cosi facendo puoi scegliere di ridurre notevolmente il peso del file jpg creato... Ovviamente piu il peso si riduce e piu la qualita dell' immagine dimuisce...
Puoi scegliere se utilizzare anche una variabile TRECT per abbassare la risoluzione dell'immagine cosi da diminuire ancor di piu il peso del file ma questo è un altro discorso...

saluti

;)

PM Quote