Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Skript for mirroring left and right side of portrait photo
#1
Hi everybody!

I am a total beginner to Script Fu, and am having a hard time finding good documentation. If anybody has some good general advice, it is very much welcome.

But here is my specific problem:

I would like to write a script which lets me automatically create two images out of one portrait picture: One from the left half of the face and its mirror image, one from the right side respectively. It is to show that a face is never completely symmetric.

In order to get familiar with it all, I have written a very humble script, which should create two copies of the image and flip one of them horizontally.

But already I encounter a problem: It seems to safe the pictures and layers and does not renew them if I apply the script to a new image. Only if I restart GIMP, it renews them. Could somebody please tell me, how I delete the buffer or tell it to overwrite the image/drawable?

And if someone could already tell me the names of the procedures to only copy and flip a selected part of an image and to insert it in a defined place of the new drawable, so I can already try a bit. At least I hope that procedures like this exist...

Thank you so much!
Cheers!
Kat



Here is my current script:


(define (script-fu-two-faces img drw)
  (let* (
        (drawable-width (car (gimp-drawable-width drw)))
        (halfdrawable-width (* drawable-width 0.5))
        (drawable-height (car (gimp-drawable-height drw)))
        (leftimage (car (gimp-image-new drawable-width drawable-height RGB)))
        (leftlayer (car (gimp-layer-new leftimage drawable-width drawable-height 0 "tfl" 100 0)))
        (rightimage (car (gimp-image-new drawable-width drawable-height RGB)))
        (rightlayer (car (gimp-layer-new rightimage drawable-width drawable-height 0 "tfr" 100 0)))
        )

        
        (gimp-image-insert-layer leftimage leftlayer 0 0)
        (gimp-drawable-fill leftlayer WHITE-FILL)
        (gimp-display-new leftimage)
        (gimp-image-insert-layer rightimage rightlayer 0 0)
        (gimp-drawable-fill rightlayer WHITE-FILL)
        (gimp-display-new rightimage)



        (gimp-edit-named-copy drw "tobepastedleft")
        (gimp-edit-named-paste leftlayer "tobepastedleft" TRUE)
        (gimp-displays-flush)


        (gimp-item-transform-flip drw halfdrawable-width 0 halfdrawable-width drawable-height)

        (gimp-edit-named-copy drw "tobepastedright")
        (gimp-edit-named-paste rightlayer "tobepastedright" TRUE)
        (gimp-displays-flush)

        )
        )


(script-fu-register "script-fu-two-faces"
  "Two faces..."
  "Creates an image from left side of the face"
  "K.Imai"
  "K.Imai"
  "2017"
  ""
  SF-IMAGE      "Image"             0
  SF-DRAWABLE   "Drawable to apply" 0
)

(script-fu-menu-register "script-fu-two-faces" "<Image>")
Reply


Messages In This Thread
Skript for mirroring left and right side of portrait photo - by Juniata - 08-07-2017, 03:35 PM

Forum Jump: