2010-10-20 7 views
0

Le code suivant sort l'écran en JPEG. Lorsqu'il est imprimé sur A4, il occupe à peine la moitié de la hauteur. Peut-il être mis à l'échelle jusqu'à 827 x 1169, c'est-à-dire au format A4?La sortie de Graphics.CopyFromScreen peut-elle passer au format A4?

Merci, Chakra.

public void TakeScreenshot() 
    { 

     Rectangle bounds = Screen.PrimaryScreen.Bounds; 
     using (Bitmap bmp = new Bitmap(bounds.Width, bounds.Height, PixelFormat.Format32bppArgb)) 
      { 

      using (Graphics gfx = Graphics.FromImage(bmp)) 
       { 

       gfx.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy); 

       Stream myStream; 
       SaveFileDialog saveFileDialog1 = new SaveFileDialog(); 

       saveFileDialog1.Filter = "jpeg files (*.jpeg)|*.jpeg"; 
       saveFileDialog1.FilterIndex = 2; 
       saveFileDialog1.RestoreDirectory = true; 

       if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
       { 
        if ((myStream = saveFileDialog1.OpenFile()) != null) 
        { 
        // Code to write the stream goes here. 
         bmp.Save(myStream, ImageFormat.Jpeg); 
         myStream.Close(); 
        } 
       } 
      } 
      } 

    } 

Répondre

0

Vous avez probablement besoin de régler la dpi de l'image d'une certaine manière à l'étirer jusqu'à la taille d'une A4

+0

Ok mais cela réduirait la qualité de l'image est-il pas? – Chakra

+0

oui, il en résulterait une qualité inférieure sur le papier puisque vous devez mettre à l'échelle la source –

Questions connexes