Didier Dorange-Pattoret a écrit :

Bonsoir Gérard et merci pour ces informations.

Je voudrais que la modification de la taille se fasse via OOo pour être multiplateforme.

Voici le code que j'ai testé (inspiré du livre OOo.org2 programmation de chez Eyrolles).

L'image about.bmp est au format 26*26 pixels.

Celle que j'obtiens export.bmp malheureusement reste en 26*26 au lieu des 16*16 attendus.

Avez vous une idée ?
D'avance merci.

bonsoir,

bon, quelques remarques d'un toujours néophyte,

1) il est important d'utiliser l'option explicit en début de programme, car cela vérifie que tu as bien déclaré toutes tes variables, ce qui n'est pas le cas ici. 2) dans la procédure main, j'initialise toutes mes variables avec une donnée test, 3) tu n'as pas écrit la procedure resizeImageByWidth dont le listing est dans l'annexe B page 633 (mais de l'ancienne version ;-) ) 4) il faut sauvegarder l'image, et là je n'ai pas eu le temps de vérifier que cela marche

une remarque : si c'est pour traiter une image de temps en temps, ou à la demande de l'utilisateur, je pense que c'est faisable, si c'est pour traiter de grands lots d'images, ça va être galère en temps car à chaque image tu monopolise beaucoup de ressources. C'est pour cela que dans un premier temps j'avais opté pour un programme externe. Il me semble qu'imageMagick existe aussi sous windows et sous Mac, mais c'est à vérifier.

Gérard


Sub Main
Dim Mondocument as Object
Dim PropFich()
Dim AdresseDoc
AdresseDoc = ConvertToURL("/home/didier/tmp4/about.bmp")
Mondocument = StarDesktop.LoadComponentFromURL(AdresseDoc,"_blank",0,PropFich)
oDessin = MonDocument.Drawpages(0).GetByIndex(0)
resizeImageByWidth(oDessin, 1200 )
exporterFormeParExt(oDessin)
Mondocument.Dispose()
End Sub


Sub exporterFormeParExt(oForm as Object)
Dim maForme As Object, serv As Object, filtre As String
Dim params(2) As New com.sun.star.beans.PropertyValue
Dim optionsfiltre(1) As New com.sun.star.beans.PropertyValue
optionsfiltre(0).Name = "PixelWidth"
optionsfiltre(0).Value = 16
optionsfiltre(1).Name = "PixelHeight"
optionsfiltre(1).Value = 16
serv = CreateUnoService("com.sun.star.drawing.GraphicExportFilter")
serv.setSourceDocument(oForm)
params(0).Name = "URL"
params(0).Value = convertToURL("/home/didier/tmp4/export.bmp")
params(1).Name = "FilterName"
params(1).Value = "bmp"
params(2).Name = "FilterData"
params(2).Value = optionsfiltre()
serv.filter(params())
End Sub





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à