Polskie Forum Użytkowników GIMP-a

Hyde zone => [Archiwum] Pomocna dłoń - GIMP => Wątek zaczęty przez: arcio_dr on 25.02.2014, 20:25:23



Tytuł: [ROZ] Automatyczne nanoszenie na obraz jego nazwy: skrypt
Wiadomość wysłana przez: arcio_dr on 25.02.2014, 20:25:23
Witam.
Posiadam ponad 300 zdjęć i chciałbym nanieść na nie automatycznie ich nazwy i to najlepiej bez rozszerzenia. Czy to jest możliwe w gimpie mam gimpa 2.8.10 i bimpa ale też standardowy bath proces


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: Ziomioslaw on 25.02.2014, 20:29:41
Skrypt. I tylko to :)


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: arcio_dr on 25.02.2014, 22:31:15
No to bieda. Pewnie nauka skryptowania więcej potrwa niż ręczne umieszczenie nazw plików na obrazach.


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: Ziomioslaw on 26.02.2014, 18:16:19
Jakbyś ładnie opisał co dokładnie chcesz zrobić, to mógłbym Ci pomóc.


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: arcio_dr on 26.02.2014, 19:56:15
O bardzo dziękuję. Wczoraj zgłębiałem podstawy i opanowałem działnia matematyczne do 1:00.
Chciałbym na każdy obraz w folderze np "x" (wszystkie obrazy w rozdzielczości 1680X1050) nanieść jego nazwę (pliku) i najlepiej bez rozszerzenia. Rozpoczęcie nazwy powinno być w górnym lewym rogu co najmniej 200 pikseli od góry i może tyle samo od brzegu (Patrząc normalnie na ekran). Czcionki Arial lub Sans  rozmiar  13 - 14 pkt . Rozmiar i położenie to bym zobaczył jak wyjdzie i w razie potrzeby zmienił w skrypcie. Może to głupie ale plan:wczytanie pliku naniesienie jego nazwy zamknięcie i tak wszystkie 388 plików


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: Ziomioslaw on 09.03.2014, 12:05:33
Uff... Udało mi się w końcu*

Skrypt do GIMP-a:

Cytuj
(define (add-text-to-picture filename text-to-display)
(let*   (
            (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
            (drawable (car (gimp-image-get-active-layer image)))
        )

        (script-fu-add-text-to-picture image drawable text-to-display "Sans" 14)
        (gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
        (gimp-image-delete image)
))

(define (script-fu-add-text-to-picture image drawable text text-font text-size)
(let*   ()
    (gimp-image-undo-group-start image)

    (gimp-floating-sel-anchor
        (car
            (gimp-text-fontname image drawable 200 200 text 1 1 text-size 1 text-font)
        )
    )

    (gimp-image-undo-group-end image)
    (gimp-displays-flush)
))

(script-fu-register
        "script-fu-add-text-to-picture"
        "Add text on picture"
        "Adding text with special size and font on picture"
        "Ziomioslaw"
        "Copyright 2014, gimpuj.info"
        "March 9, 2014"
        "*"
        SF-IMAGE        "Input image"           0
        SF-DRAWABLE     "Input drawable"        0
        SF-STRING       "Text"                  ""
        SF-FONT         "Font"                  "Sans"
        SF-ADJUSTMENT   "Font size"             '(12 1 1000 1 10 0 1)
)       

(script-fu-menu-register    "script-fu-add-text-to-picture" "<Image>/Filters/Text")


Skrypt do powłoki:

Kod:
#!/bin/bash

{
for file in *.png
do
    echo "(add-text-to-picture \"${file}\" \"${file%.*}\")"
done

echo "(gimp-quit 0)"
} | gimp -i -b -

Co prawda skrypt nie robi jeszcze dokładnie tego czego potrzebujesz (np. położenie) (teraz już tak), ale nie wiedziałem, czy tu jeszcze zajrzysz:P No i te poprawki to chwila w porównaniu do reszty:)

* - tak naprawdę to "w końcu się za to wziąłem"


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: arcio_dr on 09.03.2014, 12:22:42
Uff... Udało mi się w końcu*
Skrypt do GIMP-a:(....)
Co prawda skrypt nie robi jeszcze dokładnie tego czego potrzebujesz (np. położenie), ale nie wiedziałem, czy tu jeszcze zajrzysz:P No i te poprawki to chwila w porównaniu do reszty:)

* - tak naprawdę to "w końcu się za to wziąłem"
No mam zaznaczone powiadomienie o odpowiedzi więc czekałem na niego. Wielkie dzieki. wynika z tych skryptów że muszę zapisać ten skrypt fu w skryptach (Jak skrypt) i potem z konsoli gimpa uruchomić w tym katalogu co obrazki?
Acha i mogę poczekać na końcową wersję?
I jeszcze jedno - za bardzo się nie znam więc pytam. Ten skrypt do powłoki ma otwierać pliki png a moje są jpg czy wystarczy zmienić rozszerzenie w skrypcie bash czy też coś zmienić w skrypcie fu?


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: Ziomioslaw on 09.03.2014, 17:46:32
Poprawiłem ten skrypcik, by dodawał tekst w lewym górny rogu z marginesami 200 i czcionką "Sans" rozmiar 14. Kolor czarny.
Rozszerzenie .png możesz zastąpić jpg (tylko w skrypcie powłoki) - też powinno działać.

Dla pewności, skopiuj sobie wcześniej te obrazki, na wszelki wypadek. Bo i trzeba Ci pamiętać, dodanie tekstu będzie nie odwołalne:)


Tytuł: Odp: automatyczne nanoszenie na obraz jego nazwy
Wiadomość wysłana przez: arcio_dr on 09.03.2014, 17:54:35
Poprawiłem ten skrypcik, by dodawał tekst w lewym górny rogu z marginesami 200 i czcionką "Sans" rozmiar 14. Kolor czarny.
Rozszerzenie .png możesz zastąpić jpg (tylko w skrypcie powłoki) - też powinno działać.

Dla pewności, skopiuj sobie wcześniej te obrazki, na wszelki wypadek. Bo i trzeba Ci pamiętać, dodanie tekstu będzie nie odwołalne:)
Dzięki wielkie. Ja już zacząłem robić to ręcznie. Czy nie można by było tego tekstu zrobić na biało bo na czarno to mało widać tło jest raczej ciemne.