Bildgröße anpassen [gelöst]

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Bildgröße anpassen [gelöst]

Beitrag von clag »

Hallo Kenner und Könner,

wie stelle ich per Makro die resultierende Höhe bzw Breite einer Grafik ein ?
Ich meine hiermit das automatisch anpassen des zweiten Wertes, wenn man manuell eine Größe der Grafik verändert und der Haken für Seitenverhältnis beibehalten gesetzt ist ?
Wie erreiche ich das per Makro ?
Xray sagt mir nur die absoluten Werte.
Muss ich eventuell erst die Werte auslesen und separat berechnen und dann die neu berechneten Werte einsetzen ?

und wie immer schon mal Danke für das lesen
Zuletzt geändert von clag am Do, 14.10.2010 07:43, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Bildgröße anpassen

Beitrag von turtle47 »

Hi Clag,
clag hat geschrieben:Muss ich eventuell erst die Werte auslesen und separat berechnen und dann die neu berechneten Werte einsetzen ?
So ist es.
Hier mal ein Beispiel aus meiner Grabbelkiste:

Code: Alles auswählen

Sub X_Factor
    Dim size As New com.sun.star.awt.Size
    oDocument = thisComponent
    page = oDocument.drawPage
    nNumShapes = Page.getCount()
    k = 0
    For i = 0 To nNumShapes - 1
    oShape = Page.getByIndex( i )
    oImage = oShape.FrameStyleName
    if oImage = "Graphics" then
    CurWidth = oshape.Size.Width
    CurHeight = oshape.Size.Height
    Factor =  0.5
    NewWidth = CurWidth * Factor
    NewHeight= CurHeight * Factor
    size.Width = NewWidth
    size.Height = NewHeight    
    oshape.setSize(size)
    k = k + 1    
    end if
    next i
    msgbox "Es wurde(n) " & k & " Bild(er) angepasst." , 64, "Bildgrösse anpassen"
End Sub
Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bildgröße anpassen

Beitrag von clag »

Hi Turtle47,

erst einmal allerbesten Dank für deine Antwort....

ich hatte schon befürchtet du seist verschollen oder hattest du "Internetverbot" :lol: war so wenig zu lesen von dir ?

nach dem ich ja befürchtet habe das es so kommt, hatte ich mich schon mal ans Werk gemacht und das Ergebnis sieht deinem Vorschlag schon recht ähnlich und funktioniert sogar :D
aber ich bin mir gar nicht sicher ob ich das mit "with" und die Formel korrekt gemacht habe, ist das sauber was ich da erdacht/verzapft habe ?

Code: Alles auswählen

this_image = oDocGraphics.GetbyIndex(ix)
Dim oldHeight, oldWidth, newHight, newWidth as integer

With this_image
oldHeight = .Height
oldWidth = .Width
End With

newHeight = 3000
newWidth = oldWidth/(oldHeight/newHeight)

With this_image
    .AnchorType = 0 ' am Absatz
    .Height = NewHeight
    .Width = NewWidth
    .HoriOrient = 3
    .RightMargin = 500
    .Surround = 3
    .TextWrap = 3
End With

PS
kannst du mir sagen wo man die möglichen Parameterwerte für eine Option erfahren kann also hier zB AnchorType ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten