Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?


Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Strony: [1] 2  Wszystkie
DrukujPobierz PDF
Autor Wątek: [ROZ] Automatyzacja pracy - skrypt?  (Przeczytany 7801 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« : 10.02.2012, 01:17:26 »

Witam, da się zrobić tak, żeby zaznaczyć kilka warstw (ewentualnie jedną warstwę), zrobić obramowanie o grubości jeden dla tekstu w nich zawartego (lub kanału alfa), następnie usunąć te warstwy i zaznaczenie wypełnić na czarno? Nie wiem czy istnieją dla gimpa jakieś skrypty czy coś...
« Ostatnia zmiana: 06.08.2012, 18:40:36 wysłane przez bea » Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #1 : 10.02.2012, 18:23:38 »

Tak istnieją skrypty do GIMPa - Script-Fu.
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #2 : 10.02.2012, 22:24:19 »

A mógłby ktoś to napisać? Czy to z tym trochę roboty jest?
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #3 : 10.02.2012, 23:12:53 »

Musisz spisać konkretną listę poleceń, wtedy się pomyśli.
Taka lista to na przykład:
 1. zaznaczenie kanału alfa
 2. wypełnienie kolorem
 3. duplikacja aktualnej warstwy
itd...
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #4 : 12.02.2012, 18:55:34 »

Ok. Chodzi konkretnie o zaznaczoną warstwę (bądź kilka, jeżeli się da)

1. Zaznaczenie kanału alfa
2. Obramowanie zaznaczenia grubością 1
3. Usunięcie warstw(y)
4. Wypełnienie w warstwie tła zaznaczenia na czarno.
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #5 : 13.02.2012, 22:34:25 »

Kod:
(define (script-fu-make-border image drawable)
(gimp-image-undo-group-start image)
(gimp-selection-layer-alpha drawable)
(gimp-selection-border image 1)
(gimp-image-remove-layer image drawable)
(gimp-palette-set-default-colors)
(gimp-edit-fill (car (gimp-image-get-active-layer image)) FOREGROUND-FILL)
(gimp-displays-flush)
(gimp-image-undo-group-end image)
)

(script-fu-register "script-fu-make-border"
_"<Image>/Script-Fu/Make border"
"See http://www.gimpuj.info/index.php/topic,55029.html"
"Ziomioslaw"
"Ziomioslaw"
"2012-02-13"
"RGB*, GRAY*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Layer" 0
)

Proszę, skrypt nie jest idiotoodporny, więc radzę uważać.
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #6 : 15.02.2012, 00:51:19 »

Prawie idealnie Uśmiech Już teraz wielkie dzięki. Ale jeśli mogę jeszcze chwilę pomarudzić, to dlaczego przy tle i dwóch warstwach tekstu już nieraz nie wypełnia na czarno? Chyba jest tak wtedy, kiedy wybiorę warstwę tekstową 1, zaznaczę warstwę tekstową 2 i wykonam skrypt, próbuje wypełnić wtedy zaznaczenie w warstwie tekstowej 1, ale ona tam nie sięga więc nic się nie wykonuje. Da się zrobić tak, żeby zawsze wykonywało wypełnienie zaznaczenia w warstwie najniższej?
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #7 : 15.02.2012, 19:31:34 »

Spróbuj teraz:

Kod:
(define (script-fu-make-border image drawable)
(gimp-image-undo-group-start image)
(gimp-selection-layer-alpha drawable)
(gimp-selection-border image 1)
(gimp-palette-set-default-colors)
(gimp-edit-fill (car (last (vector->list (cadr (gimp-image-get-layers image))))) FOREGROUND-FILL)
(gimp-image-remove-layer image drawable)
(gimp-displays-flush)
(gimp-image-undo-group-end image)
)

(script-fu-register "script-fu-make-border"
_"<Image>/Script-Fu/Make border"
"See http://www.gimpuj.info/index.php/topic,55029.html"
"Ziomioslaw"
"Ziomioslaw"
"2012-02-13"
"RGB*, GRAY*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Layer" 0
)
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #8 : 15.02.2012, 20:54:09 »

Idealnie Chichot Naprawdę, wielkie dzięki, bardzo mi to pomoże.
Pozdrawiam
« Ostatnia zmiana: 16.02.2012, 18:09:56 wysłane przez wiktor93 » Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #9 : 16.02.2012, 18:09:48 »

Nie chcę przesadzić, ale jeśli to nie jest duży problem to potrzebuję jeszcze czegoś takiego:
Opcja 1:
Jest sobie jakaś tam warstwa tekstowa. No i tak:
1. Zduplikować warstwę dwukrotnie (postaną powiedzmy D1 i D2, ale to tylko na potrzeby zrozumienia instrukcji)
2. D1 i D2 wrzucić pod główną
3. Zaznaczyć kanał alfa w głównej
4. Powiększyć zaznaczenie o 1
5. W D1 wypełnić zaznaczenie na biało i zastosować Rozmycie Gaussa (poziomo i pionowo 5px, standardowe ustawienia)
6. Powiększyć to powiększone zaznaczenie jeszcze o 2
7. W D2 wypełnić zaznaczenie na czarno i Rozmycie Gaussa jak wyżej
8. Połączyć warstwy tak, aby wszystko było w jednej, ale w warstwie tła.
9. Odznaczyć wszystko.

Opcja 2:
Jak wyżej, tylko zamiana kolorów w punktach 5 na czarno i 7 na biało.

Byłbym bardzo wdzięczny, pozdrawiam.
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #10 : 16.02.2012, 19:10:46 »

2. D1 i D2 wrzucić pod główną
3. Zaznaczyć kanał alfa w głównej

Co znaczy warstwa główna?
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #11 : 16.02.2012, 20:36:15 »

Miałem na myśli warstwę od której się wychodzi, czyli którą się duplikuje. Przepraszam za niedoprecyzowanie.
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 461
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #12 : 20.02.2012, 23:09:03 »

Kod:
(define (script-fu-make-border image drawable)
(let *(
    ; 1. Zduplikować warstwę dwukrotnie
(layer-copy1 (car (gimp-layer-copy drawable TRUE)))
(layer-copy2 (car (gimp-layer-copy drawable TRUE)))
(main-layer-position (car (gimp-image-get-layer-position image drawable)))
  )

  (gimp-image-undo-group-start image)

; 2. D1 i D2 wrzucić pod główną
(gimp-image-add-layer image layer-copy1 (+ main-layer-position 1))
(gimp-image-add-layer image layer-copy2 (+ main-layer-position 2))

; 3. Zaznaczyć kanał alfa w głównej
(gimp-selection-layer-alpha drawable)

; 4. Powiększyć zaznaczenie o 1
(gimp-selection-border image 1)

; 5. W D1 wypełnić zaznaczenie na biało i zastosować Rozmycie Gaussa (poziomo i pionowo 5px, standardowe ustawienia)
(gimp-palette-set-default-colors)
(gimp-edit-fill layer-copy1 FOREGROUND-FILL)
(plug-in-gauss 1 image layer-copy1 5 5 1)

; 6. Powiększyć to powiększone zaznaczenie jeszcze o 2
(gimp-selection-border image 2)

; 7. W D2 wypełnić zaznaczenie na czarno i Rozmycie Gaussa jak wyżej
(gimp-edit-fill layer-copy2 BACKGROUND-FILL)
(plug-in-gauss 1 image layer-copy2 5 5 1)

; 8. Połączyć warstwy tak, aby wszystko było w jednej, ale w warstwie tła.
(gimp-image-lower-layer-to-bottom image layer-copy2)
(gimp-image-raise-layer image layer-copy2)
(gimp-image-merge-down image layer-copy2 1)

(gimp-image-lower-layer-to-bottom image layer-copy1)
(gimp-image-raise-layer image layer-copy1)
(gimp-image-merge-down image layer-copy1 1)

(gimp-image-lower-layer-to-bottom image drawable)
(gimp-image-raise-layer image drawable)
(gimp-image-merge-down image drawable 1)

; 9. Odznaczyć wszystko.
(gimp-selection-none image)

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

(script-fu-register "script-fu-make-border"
_"<Image>/Script-Fu/Make border"
"See http://www.gimpuj.info/index.php/topic,55029.html"
"Ziomioslaw"
"Ziomioslaw"
"2012-02-13"
"RGB*, GRAY*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Layer" 0
)

To jest opcja numer 1. Pewnie można ją napisać nieco bardziej optymalnie, ale już nie eksperymentowałem. No i w ten sposób jest zgodna z Twoją listą. Jeśli chodzi o opcję numer 2, myślę, że poradzisz sobie ze zmianą.
Zapisane
wiktor93
Użytkownik

Reputacja: 0 Offline Offline

Wiadomości: 32
Galeria Użytkownika

wiktor93


Zobacz profil
« Odpowiedz #13 : 03.03.2012, 00:53:54 »

No niestety gimp mi tego skryptu nie widzi. Chyba że coś źle robię, ale po rozwinięciu zakładki Script-Fu (zaraz po włączeniu Gimpa) mam tylko Make border z tamtego posta.
Zapisane
Strony: [1] 2  Wszystkie
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aHyde zoneArchiwum[Archiwum] Pomocna dłoń - GIMPWątek: [ROZ] Automatyzacja pracy - skrypt?
Skocz do: