Macro insertion image

Bonjour,

J'avais récupéré les macros du livre de Bernard Marcelly, Laurent Godard (voir code ci-dessous)

Je voudrais lorsque j'insère mon image garder sa taille réelle mais si j'ai bien compris, il faut transformer la taille en pixel en cm (ce que fait la fonction "resizeimageByWith".

Sauf que je ne sais pas comment trouver la résolution pour faire cela.

Si quelqu'un a une solution, merci d'avance

Claude

Option Explicit

Sub AjouterImage()
Dim monDocument As Object, monTexte As Object
Dim monCurseur As Object, monImage As Object
Dim positionImage As New com.sun.star.awt.Point
monDocument = ThisComponent
monTexte = monDocument.Text
monCurseur = monTexte.createTextCursor
monCurseur.gotoNextParagraph(False) ' déplacer le curseur

positionImage.x = 1500 ' 15 mm à droite du point d'ancrage
positionImage.y = 1300 ' 13 mm en dessous du point d'ancrage
monImage= monDocument.createInstance("com.sun.star.drawing.GraphicObjectShape")
monImage.GraphicURL = ConvertToURL("C:\Docs OpenOffice\LogoOpenOffice.png")
monImage.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
monTexte.insertTextContent(monCurseur, monImage, false)
resizeImageByWidth(monImage, 5500) ' largeur en 1/100 de mm
monImage.Position = positionImage
monImage.Surround = com.sun.star.text.WrapTextMode.RIGHT
monImage.Name = "Logo1" ' donner un nom à cette image
End Sub

Sub resizeImageByWidth(uneImage As Object, largeur As long)
Dim imageInfo As Object, Proportion As Double, Taille1 As Object

imageInfo = uneImage.Graphic
Taille1 = imageInfo.SizePixel
Proportion = Taille1.Height / Taille1.Width
Taille1.Width = largeur
Taille1.Height = Taille1.Width * Proportion
uneImage.Size = Taille1
End Sub

Bonjour

il faut te servir des fonctions internes de basic
GetTwipsPerPixelX
GetTwipsPerPixelY

puis lis ceci qui explique le passage des Twips vers les centimetres

http://www.pbdr.com/vbtips/gen/convtwip.htm

Bon courage

Laurent

Merci mais je n'arrive toujours pas à récupérer la résolution de l'image.

Claude

-------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Macro insertion image
*Pour : *users@fr.libreoffice.org

Bonjour,

-----Message d'origine-----
De : claude [mailto:pref-open-office@haute-garonne.gouv.fr]
Envoyé : mercredi 7 octobre 2015 15:38
À : Laurent Godard
Cc : users@fr.libreoffice.org
Objet : Re: Re: [fr-users] Macro insertion image

Merci mais je n'arrive toujours pas à récupérer la résolution de l'image.

Claude

-------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Macro insertion image
*De : *Laurent Godard <lgodard.libre@laposte.net>
*Pour : *users@fr.libreoffice.org
*Date : *07/10/2015 10:23
> Bonjour
>
> il faut te servir des fonctions internes de basic
> GetTwipsPerPixelX
> GetTwipsPerPixelY
>
> puis lis ceci qui explique le passage des Twips vers les centimetres
>
> http://www.pbdr.com/vbtips/gen/convtwip.htm

J'ai utilisé la propriété: Size100thMM au lieu SizePixel :
http://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1graphic
_1_1GraphicDescriptor.html#ac99c505108bd7f6220e43c3f7a7a9040
qui me permet de positionner et dimensionner exactement l'image

MAIS: comme cette propriété - ainsi que le précise le lien ci-dessus - n'est
pas toujours disponible (je l'ai rencontré), le redimensionnement en gardant
les proportions peut ne pas être possible. Dans ce cas, je calcule le
rapport H/L avec SizePixel, j'en déduis les dimensions H et L voulues en
1/100mm que j'applique à l'image.

Si ma méthode répond à ta question, je pourrai être plus précis.

Cordialement,
Michel