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

Polskie Forum Użytkowników GIMP-aDodatkiSzukamWątek: [ROZ] Skrypt typu autosave GIMP 2.6
Strony: [1]
DrukujPobierz PDF
Autor Wątek: [ROZ] Skrypt typu autosave GIMP 2.6  (Przeczytany 4853 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
michalfras
Nowicjusz

Reputacja: 0 Offline Offline

Płeć: Mężczyzna
GIMP: 2.6
Licencja: Copyright
Wiadomości: 4
Galeria Użytkownika

michalfras


Zobacz profil
« : 30.07.2009, 10:35:31 »

Witam wszystkich GIMP-owiczów, poszukuję skryptu do autozapisu prac tworzonych w GIMP-ie, znalazłem coś takiego http://archives.free.net.ph/message/20090707.160642.ddf56daf.ja.html, ale nie wiem jak ani z czym to się je,ani nie jestem pewny czy to aby napewno autosave. Proszę o pomoc bo sprawa jest pilna.
Pozdrawiam
« Ostatnia zmiana: 03.06.2013, 19:28:59 wysłane przez bea » Zapisane
mmiicc
√ ι ק

Reputacja: 14 Offline Offline

Płeć: Mężczyzna
GIMP: 2.6
Licencja: CC-BY-SA
Wiadomości: 1 423
Galeria Użytkownika



Zobacz profil WWW
« Odpowiedz #1 : 30.07.2009, 11:40:11 »

Testowałem przed chwilą. To co poniżej trzeba skopiować do edytora tekstu i zapisać jako autosave.py w katalogu z wtyczkami GIMP-a. Potem (w przypadku Linuksa) należy nadać plikowi uprawnienia zezwalające na "wykonanie pliku jako programu". Po otwarciu obrazu w GIMP-ie trzeba aktywować skrypt w menu Plik>Activate Autosave. Domyślnie backup jest tworzony co 30 minut. Aby to zmienić, w szóstym wierszu:  backupInterval = 30*60 zamiast 30 można wpisać np. 10 co pozwoli na zapis co 10 minut.
Plik jest zapisywany w katalogu /tmp.
Wszystko to dotyczy Linuksa a konkretnie Ubuntu. W przypadku Windowsa trzeba by mieć zainstalowanego Pythona. Jest o tym poradnik na forum. Nie wiem też, gdzie zapisywana byłaby kopia obrazu i czy trzeba by ten skrypt jakoś zmodyfikować.
Kod:
#!/usr/bin/env python


import tempfile, os
from time import *
from gimpfu import *


def autosave():
    backupInterval = 30*60

    backupFiles = {}
    print "Autosave activated"

    while 1:
        sleep(backupInterval)

        print ctime(time())

        curImages = {}
        for k in gimp.image_list():
            curImages[k.ID] = k

        curIDs = curImages.keys()
        oldIDs = backupFiles.keys()

        newIDs = [x for x in curIDs if x not in oldIDs];
        delIDs = [x for x in oldIDs if x not in curIDs];

        # create (empty) backup files for new images
        for id in newIDs:
            prefix = 'gimpbackup-ID' + str(id) + '-'
            fn = tempfile.mkstemp(prefix = prefix, suffix = '.xcf')
            os.close(fn[0])
            backupFiles[id] = fn[1]

        # remove closed images' backups
        for id in delIDs:
            filename = backupFiles[id]
            del(backupFiles[id])
            try:
                os.remove(filename)
            except:
                print "ERROR: ", sys.exc_info()[0]

        # backup images
        for id, filename in backupFiles.iteritems():
            img = curImages[id]
            try:
                print "saving " + img.name + '-' + str(id) + ' to ' + filename
                pdb.gimp_xcf_save(1, img, img.active_drawable, filename, filename)
            except:
                print "ERROR: ", sys.exc_info()[0]




register(
        "autosave",
        "Autosave dirty hack",
        "Periodically saves all opened images to a temp directory",
        "public domain",
        "public domain",
        "2009",
        "<Toolbox>/File/Activate Autosave",
        "RGB*, GRAY*",
        [],
        [],
        autosave)

main()
« Ostatnia zmiana: 30.07.2009, 12:15:23 wysłane przez mmiicc » Zapisane

Śledź gimptools.pl na  lub Identi.ca
michalfras
Nowicjusz

Reputacja: 0 Offline Offline

Płeć: Mężczyzna
GIMP: 2.6
Licencja: Copyright
Wiadomości: 4
Galeria Użytkownika

michalfras


Zobacz profil
« Odpowiedz #2 : 30.07.2009, 13:12:45 »

Jeśli chodzi o Pythona to tak myślałem ze trzeba go zainstalować. Mam winde Viśte, ale to nie ma dużego znaczenia, dobrze by było żeby ktoś to na widzie przetestował, bo z tego co widzę (chociaż się na tym nie znam) to ścieżki podane w tym skrypcie dotyczą pingwinka, a nie znam sięza bardzo na  języku skryptów.

Dziękuję za pomoc i czekam aż ktoś to przerobi na skrypt pod winde.

Napisze do Sebastiana, on robił skrypt do zapisywania pliku z kopią zapasową, może pomoże:).

+ no cóż narazie czekam, ale jak by ktoś móg pomóc i przerobił pod winde to było by fajnie.
Skrypt działa pod Linuxem, sam testowałem wczoraj u kumpla. Świetna rzecz
« Ostatnia zmiana: 31.07.2009, 15:37:19 wysłane przez michalfras » Zapisane
Silterss
Emeryt

Reputacja: 4 Offline Offline

Płeć: Mężczyzna
GIMP: 2.8 + GAP
JID: silterss@jabbim.com
Licencja: CC-NC-BY-SA
Wiadomości: 654
Galeria Użytkownika



Zobacz profil
« Odpowiedz #3 : 04.08.2009, 21:29:14 »

Tak przez przypadek trafiłem na powyższego autosava i z ciekawości przetestowałem go na windzie. Przy zainstalowanym pythonie działa bez problemu. Zapisuje  xcf do katalogu C:\Documents and Settings\Nazwa_usera\Ustawienia lokalne\Temp pod nazwą gimpbackup-ID(jakaś cyfra)-(6 przypadkowych znaków, najczęściej liter).xcf.

Katalog Ustawienia lokalne ma atrybut ukryty, tak więc by do niego się dostać w Opcjach folderów w zakładce Widok należy zaznaczyć Pokaż ukryte pliki i foldery.
« Ostatnia zmiana: 22.05.2010, 16:46:52 wysłane przez Silterss » Zapisane

Strony: [1]
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aDodatkiSzukamWątek: [ROZ] Skrypt typu autosave GIMP 2.6
Skocz do: