J'essaye de placer une image sur un document A4 en respectant des marges mais je butte sur la façon de faire un redimensionnement dans les deux sens de l'image et donc je me demande si il est possible (et comment) faire deux resize consecutifs (ResizeHeightRatio et ResizeWidthRatio). Je code que j'ai écris ne me fait que le premier, est - ce normal?
- Code: Select all
If nImageId <> 0 Then
Select Case sSens
Case "P", "p"
nHauteurNew = 3508: nLargeurNew = 2481
nMargeG = nMargePG: nMargeD = nMargePD: nMargeH = nMargePH: nMargeB = nMargePB
Case "L", "l"
nHauteurNew = 2481: nLargeurNew = 3508
nMargeG = nMargeLG: nMargeD = nMargeLD: nMargeH = nMargeLH: nMargeB = nMargeLB
End Select
Call Imaging1.ResizeWidthRatio(nLargeurNew - nMargeD - nMargeG, 7)
nHauteurRzd = Imaging1.GetHeight()
Call Imaging1.ResizeHeightRatio(nHauteurNew - nMargeH - nMargeB, 7)
nLargeurRzd = Imaging1.GetWidth()
nImageA4 = Imaging1.CreateNewImage(nLargeurNew, nHauteurNew, 32, Imaging1.argb(255, 10, 10, 10))
Call Imaging1.SetVerticalResolution(300)
Call Imaging1.SetHorizontalResolution(300)
If nImageA4 <> 0 Then
Imaging1.SetNativeImage (nImageA4)
Else
MsgBox "nImageA4 non créée.", vbExclamation, "xxx"
End If
'centrage vertical
nMargeH = (nHauteurNew - nHauteurRzd) / 2
'centrage horizontal
nMargeG = (nLargeurNew - nLargeurRzd) / 2
'Call Imaging1.DrawImage(nImageId, nMargeG, nMargeH, nLargeurNew - nMargeD - nMargeG, nHauteurRzd, 7)
Call Imaging1.DrawImage(nImageId, nMargeG, nMargeH, nLargeurRzd, nHauteurRzd, 7)
Select Case sExtension
Case "tif", "tiff"
Call Imaging1.convertto1bpp
Call Imaging1.SaveAstiff(sChemin, 4) '4:CCITT g4
Case "jpg", "jpeg"
Call Imaging1.ConvertTo8BppGrayScaleAdv
Call Imaging1.SaveAsJPEG(sChemin, nCompJpg)
End Select
Call Imaging1.closenativeimage
fctMiseA4Marges = True
Else
fctMiseA4Marges = False
End If
Merci de votre aide.
Jissé
