Bonjour
j'ai un projet VB 2005 qui imprime des images en pleine page.
Pour que l'image soit imprimée sur toute la page, celui-ci effectue une rotation ou non de l'image, à l'aide de RotateFlip.
Ca fonctionne bien, sauf que j'ai un petit souci de conso mémoire :
Lorsque j'imprime une image SANS la retourner, la conso de mon appli augmente d'environ 1.5Mo. Le job dans la file d'impression Windows fait a peu près 1.5Mo aussi.
Par contre, lorsque j'imprime une image AVEC une rotation, la conso de l'appli augmente de 25-30Mo, et le job dans la file d'impression pèse 28Mo.
Bien entendu, je fais bien un "dispose" de mon image pour libérer les ressources dans mon appli, mais coté file d'impression, si j'imprime 10 pages d'affilée, je me retrouve avec un job de 280Mo, alors imaginez un job de 100 pages (ce qui est fréquent pour mon application...)
Auriez vous une idée ??
PS : le bout de code qui imprime :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Dim MonImage As Bitmap Dim ratio, ratiopapier As Double Dim RectSortie As Rectangle MonImage = New Bitmap(CurrentPrintedImage.NomFichier) ratiopapier = e.MarginBounds.Height / e.MarginBounds.Width If (MonImage.Width > MonImage.Height And ratiopapier > 1) Or (MonImage.Width < MonImage.Height And ratiopapier < 1) Then MonImage.RotateFlip(RotateFlipType.Rotate90FlipNone) End If ratio = MonImage.Height / MonImage.Width RectSortie = New Rectangle(0, 0, e.MarginBounds.Width, e.MarginBounds.Width * ratio) e.Graphics.DrawImage(MonImage, RectSortie) MonImage.Dispose()
Partager