Polskie Forum Użytkowników GIMP-a

Hyde zone => [Archiwum] Pomocna dłoń - GIMP => Wątek zaczęty przez: mariiox on 26.07.2011, 00:12:10



Tytuł: [ROZ] Przerobienie gifa, nie wiem jak
Wiadomość wysłana przez: mariiox on 26.07.2011, 00:12:10
Witam, mam problem któy nie wiem jak rozwiązać

Mam plik gif (animacje) i chciałbym zrobić coś w stylu tego
(http://i51.tinypic.com/fwqgxk.gif)

Tylko gdy wklejam .GIF to nie wiem w jaki sposób zrobić aby tło... Tzn napis mortal kombat, to przyciemnienie i ten gostek po lewo zostali... Bo gimp mi zalicza ich jako zwykłą wartstwe i oni szybko znikają ;/

Ja potrzebuję aby gif się ruszał a oni nie ;/



Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: Typhon on 26.07.2011, 00:29:46
Wiem, że jest jakaś metoda, aby zablokować na stałe jedną klatkę i wybiera się to chyba gdzieś przy zapisie. Dokładnie nie pomogę, bo nie wiem jak to szło. Ewentualnie możesz wklejać to nieruchome na każdą klatkę, ale wtedy waga gifu mocno się podnosi.


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: be@ on 26.07.2011, 01:56:42
O blokowaniu jednej klatki niestety nie słyszałam i nie wiem jak to zrobić. W niektórych przypadkach można utworzyć gif w trybie kumulacji warstw (składanie) zamiast zastępowania i wtedy najniższa warstwa będzie cały czas częściowo widoczna, jeśli pozostałe są częściowo przezroczyste albo mniejsze. W tym przypadku to akurat się nie sprawdzi i trzeba nieruchome elementy umieścić na każdej klatce. Waga nie powinna być z tego powodu dużo większa, jeśli użyje się optymalizacji (Filtry -> Animacja -> Optymalizuj (dla foramtu GIF).


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: Sooly on 26.07.2011, 10:32:47
Napisz do tej pani - http://www.gimpuj.info/index.php?action=profile;u=3774
Ona kiedyś robiła dużo takich sygnatur, właśnie wklejając fragmenty filmów.


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: mariiox on 26.07.2011, 11:59:42
Wysłałem... Czekam na odpowiedź
W sumie można też wklejać każdą warstwę nieruchomą do jednej ruchomej, poszukam jakiegoś szybszego sposobu do tego


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: mariiox on 26.07.2011, 18:18:35
Ok zrobiłem, połączyłem wszystkie60 warstw

Po kolei
1.Tło
2.Kopia
3. połącz w dół
Troche to trwało
Cóż... Efekt słaby, ale to jeden z pierwszych tego typu projektów :P
(http://iv.pl/images/51956992393050036754.gif)

Dzięki za pomoc, można zamknąć


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: POGO on 26.07.2011, 18:38:29
Ludzie to masochiści! <lol> Po co tak się męczyć poczekaj z godzinkę z tym zamykaniem to wrzucę skrypt. <lol>


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: POGO on 26.07.2011, 19:31:13
Dwa skrypty w jednym 1-Combine background, podkłada tło pod wszystkie warstwy.2-Overlay background nakłada obraz na wszystkie warstwy.Znajdziesz skrypty Filtry->Animacja.
Jak na pierwszy raz bardzo dobrze. <lol>
Kod:
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.

; revised December 2010 to honor layer visibility

;; Combine each layer of the image with a copy of the background layer

(define (script-fu-sg-anim-combine-background image)
  ; get visible layers (bottom-to-top)
  (define (get-visibles image)
    (let loop ((layers (vector->list (cadr (gimp-image-get-layers image))))
               (visibles '()) )
      (if (null? layers)
        visibles
        (loop (cdr layers)
              (if (zero? (car (gimp-drawable-get-visible (car layers))))
                visibles
                (cons (car layers) visibles) ) ) ) ) )
               
  (gimp-image-undo-group-start image)
  (let* ((layers (vector->list (cadr (gimp-image-get-layers image))))
         (visibles (get-visibles image))
         (bg-layer (car (last layers)))
         (orig-sel (car (gimp-selection-save image))) )
    (gimp-selection-none image)
    (map (lambda (x) (gimp-drawable-set-visible x FALSE)) visibles)
    (when (= (car visibles) bg-layer)
      (set! visibles (cdr visibles))
      (gimp-drawable-set-visible bg-layer TRUE) )
    (while (pair? visibles)
      (let* ((layer (car visibles))
             (position (car (gimp-image-get-layer-position image layer)))
             (base-layer 0)
             (layer-name "") )
        (gimp-drawable-set-visible (car visibles) TRUE)
        (set! layer-name (car (gimp-drawable-get-name layer)))
        (set! base-layer (car (gimp-layer-new-from-drawable bg-layer image)))
        (gimp-image-add-layer image base-layer (+ position 1))
        (gimp-drawable-set-visible base-layer TRUE)
        (set! base-layer (car (gimp-image-merge-down image layer CLIP-TO-BOTTOM-LAYER)))
        (gimp-drawable-set-name base-layer layer-name) )
      (set! visibles (cdr visibles)) )
    (gimp-selection-load orig-sel)
    (gimp-image-remove-channel image orig-sel) )
  (gimp-image-undo-group-end image)
  (gimp-displays-flush)
  )

(script-fu-register "script-fu-sg-anim-combine-background"
  "<Image>/Filters/Animation/_Combine background"
  "Combine each layer of the image with a copy of the background layer"
  "Saul Goode"
  "Saul Goode"
  "4/22/2007"
  "*"
  SF-IMAGE    "Image"    0
  )

;; Overlay each layer of the image with a copy of the background layer

(define (script-fu-sg-anim-overlay-background image)
  ; get visible layers (bottom-to-top)
  (define (get-visibles image)
    (let loop ((layers (vector->list (cadr (gimp-image-get-layers image))))
               (visibles '()) )
      (if (null? layers)
        visibles
        (loop (cdr layers)
              (if (zero? (car (gimp-drawable-get-visible (car layers))))
                visibles
                (cons (car layers) visibles) ) ) ) ) )
  (gimp-image-undo-group-start image)
  (let* ((layers (vector->list (cadr (gimp-image-get-layers image))))
         (visibles (get-visibles image))
         (bg-layer (car (last layers)))
         (orig-sel (car (gimp-selection-save image))) )
    (gimp-selection-none image)
    (map (lambda (x) (gimp-drawable-set-visible x FALSE)) visibles)
    (when (= (car visibles) bg-layer)
      (set! visibles (cdr visibles))
      (gimp-drawable-set-visible bg-layer TRUE) )
    (while (pair? visibles)
      (let* ((layer (car visibles))
             (position (car (gimp-image-get-layer-position image layer)))
             (over-layer 0) )
        (gimp-drawable-set-visible layer TRUE)
        (gimp-image-set-active-layer image layer)
        (set! over-layer (car (gimp-layer-new-from-drawable bg-layer image)))
        (gimp-image-add-layer image over-layer -1)
        (gimp-drawable-set-visible over-layer TRUE)
        (gimp-image-merge-down image over-layer EXPAND-AS-NECESSARY) )
      (set! visibles (cdr visibles)) )
    (gimp-selection-load orig-sel)
    (gimp-image-remove-channel image orig-sel) )
  (gimp-image-undo-group-end image)
  (gimp-displays-flush)
  )

(script-fu-register "script-fu-sg-anim-overlay-background"
  "<Image>/Filters/Animation/_Overlay background"
  "Overlay each layer of the image with a copy of the background layer"
  "Saul Goode"
  "Saul Goode"
  "4/22/2007"
  "*"
  SF-IMAGE    "Image"    0
  )
                             


Tytuł: Odp: Przerobioenie gifa, nie wiem jak
Wiadomość wysłana przez: be@ on 26.07.2011, 20:32:57
- POGO to zawsze jakimś przydatnym skryptem rzuci ;)
 
- mariiox dodaj tag [ROZ] przed tytułem prośby.