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

  Pokaż wiadomości
Strony: [1]
1  Ogólne dyskusje / GIMP - pomoc / Odp: Generowanie dużej ilości plików PNG z pliku TXT : 26.01.2022, 20:03:47
Dziękuję za pomoc :-)
2  Ogólne dyskusje / Ogólne - pomoc / Odp: Kopiowanie textu z grafiki .psd oraz odczytywanie danych dotyczących czcionki : 26.01.2022, 14:08:28
Trochę odgrzeję, ale może komuś się przyda.
Obecnie można zarejestrować się w Adobe i otrzymać na 7 dni bezpłatny dostęp do Photoshopa, więc w takim przypadku dałoby się problem rozwiązać. Nie wiem jak było wcześniej ani jak będzie w przyszłości. Nie trzeba podawać nr kart VISA itd. Rejestracja na podstawie maila.
3  Ogólne dyskusje / GIMP - pomoc / Odp: Generowanie dużej ilości plików PNG z pliku TXT : 26.01.2022, 13:33:51
Zatrzymało mnie na takim etapie:


#!/usr/bin/env python
from gimpfu import *
import csv

with open('D:\GimpSkrypty\skrypt1.csv') as plik:
 readCSV = csv.reader (plik, delimiter=";")
 for wiersz in readCSV:
  nrwiersza=wiersz[0] # to bede uzywac do nadania nazwy pliku
  napis=wiersz[1] #to bede uzywac do stworzenia napisu
  hello_world(napis)


#http://www.efalk.org/Docs/Python/gimp-examples.html - stad wzialem i przerobilem poniasza funkcje:
def hello_world(napis):
      if font == 'Comic Sans MS' :
       initstr = "Comic Sans? Are you sure?"

img = gimp.Image(1, 1, RGB)
pdb.gimp_context_push()
gimp.set_foreground(125, 175, 188)
layer = pdb.gimp_text_fontname(img, None, 0, 0, napis, 10, True, 100, PIXELS, "Tahoma")
img.resize(layer.width, layer.height, 0, 0)
background = gimp.Layer(img, "Background", layer.width, layer.height, RGB_IMAGE, 100, NORMAL_MODE)
background.fill(BACKGROUND_FILL)
img.add_layer(background, 1)
gimp.Display(img)
gimp.displays_flush()
pdb.gimp_context_pop()
return


A tak to wygląda na konsoli:

>>>
>>>
>>> #!/usr/bin/env python
>>> from gimpfu import *
>>> import csv
>>>
>>> with open('D:\GimpSkrypty\skrypt1.csv') as plik:
...  readCSV = csv.reader (plik, delimiter=";")
...  for wiersz in readCSV:
...   nrwiersza=wiersz[0] # to bede uzywac do nadania nazwy pliku
...   napis=wiersz[1] #to bede uzywac do stworzenia napisu
...   hello_world(napis)
...
Traceback (most recent call last):
  File "<input>", line 6, in <module>
TypeError: hello_world() takes no arguments (1 given)

>>>
>>> #http://www.efalk.org/Docs/Python/gimp-examples.html - stad wzialem i przerobilem ponizsza funkcje:
>>> def hello_world(napis):
...       if font == 'Comic Sans MS' :
...        initstr = "Comic Sans? Are you sure?"
...
>>> img = gimp.Image(1, 1, RGB)
>>> pdb.gimp_context_push()
>>> gimp.set_foreground(125, 175, 188)
>>> layer = pdb.gimp_text_fontname(img, None, 0, 0, napis, 10, True, 100, PIXELS, "Tahoma")
>>> img.resize(layer.width, layer.height, 0, 0)
>>> background = gimp.Layer(img, "Background", layer.width, layer.height, RGB_IMAGE, 100, NORMAL_MODE)
>>> background.fill(BACKGROUND_FILL)
>>> img.add_layer(background, 1)
>>> gimp.Display(img)
<display>
>>> gimp.displays_flush()
>>> pdb.gimp_context_pop()
>>> return
  File "<input>", line 1
SyntaxError: 'return' outside function

>>>
>>>
>>>
Jakoś nie wyskakuje mi z tej funkcji z powrotem do pętli, tworzy obrazek tak jak trzeba, ale tylko jeden z napisem "jeden". Ten pierwszy problem też pewnie ma jakieś znaczenie. Co tu trzeba poprawić?
To moje pierwsze kroki z Pythonem i pierwsze wrażenie jest takie, że jakiś sadysta wymyślił te wcięcia, gdzie jedna spacja za mało lub za dużo rozwala wszystko :-(
Już mi ten projekt chyba nie będzie potrzebny, ale z czystej ciekawości chcę to zrobić.


4  Ogólne dyskusje / GIMP - pomoc / Odp: Generowanie dużej ilości plików PNG z pliku TXT : 22.01.2022, 22:28:12
Całą sobotę nad tym siedziałem i mętlik większy w głowie mam.
https://boardgamegeek.com/thread/1925214/laying-out-cards-quickly-gimp-and-bit-programming
Ten wątek jest ciekawy, teraz jakby go uprościć do dwóch zmiennych, a w zasadzie do jednej warstwy. Ktoś porządnie nakombinował z tym wszystkim.
Zapisywanie dla każdej zmiennej jako projekt gimp xcf jest w zasadzie bez sensu i niepotrzebne, do takiego wniosku doszedłem. W wątku jest też o pobieraniu danych z pliku zewnętrznego. Chyba najlepszym rozwiązaniem byłoby tworzenie warstwy dla każdej nowej zmiennej i po eksporcie do PNG jej usuwanie. Druga droga to utworzenie warstw dla wszystkich zmiennych i ich aktywowanie do eksportu, ale to na pewno zamuli program i zeżre niepotrzebnie dużo zasobów. Dawno temu programowałem w Delphi gdzie RAM był w ilości 64MB, no to pamiętam czego nie powinno się robić, żeby szanować zasoby sprzętowe :-) Plik xcf z tego wątku ma 260MB a to tylko 128kart, więc wydaje się, że trzeba projekty dobrze przemyśleć. Chyba, że grafika jest trzymana w tym pliku i dlatego taki rozmiar.
5  Ogólne dyskusje / GIMP - pomoc / Odp: Generowanie dużej ilości plików PNG z pliku TXT : 22.01.2022, 15:57:54
Biorę pod uwagę takie rozwiązanie, aby tylko wyjustować. W excellu użyłbym funkcji liczącej ilość znaków, posortował i podzielił sobie zadanie w ten sposób, że tam gdzie tekst nie mieściłby się, użyłbym mniejszej czcionki.
6  Ogólne dyskusje / GIMP - pomoc / Generowanie dużej ilości plików PNG z pliku TXT : 22.01.2022, 01:42:02
Witajcie.
Potrzebuję zrobić projekt polegający na stworzeniu według szablonu kilkuset obrazków lub więcej. Wydaje się, że GIMP jest odpowiedni, ale jakbym robił jedną sztukę, albo kilka to nie byłoby tematu. Mam plik tekstowy a w nim dwie kolumny z tekstem rozdzielanym przecinkami:
1, jeden
2, dwa
3, trzy
… itd.
Potrzebuję utworzyć plik png o rozmiarach z jakiegoś szablonu, np. 1000x1200. Właśnie, czy użyć szablonu, czy wcześniej zrobić pusty plik PNG i go otwierać? Czy można zrobić skrypt, który pobierze pierwszą linię pliku txt, pierwszą zmienną użyje na później do nadania nazw plikom, a drugą zmienną wklei do pola tekstowego?

Pole tekstowe trzeba rozszerzyć od lewego do prawego brzegu, zwiększyć czcionkę, aby wypełniała to okienko maksymalnie. Tutaj zmiana koloru czcionki i tła. Z tym bym sobie poradził. Pytanie tylko, bo zmienna miałaby różną długość znaków, więc czy wielkość liter można byłoby ustawić tak jak np. w Excelu, żeby dopasował do szerokości komórki? Aby mieć pewność, że wszystko się zmieści w jednej linii a jednocześnie było od brzegu do brzegu.

No i na koniec skrypt miałby zapisać projekt w formacie gimp oraz wyeksportować do PNG, do nadania nazw plikom używając pierwszej zmiennej z pliku tekstowego.

No i jak to zrobi, to w następnej iteracji miałby zrobić to samo dla kolejnych danych z pliku tekstowego.

Nie wiem czy da się to zrobić skryptem w GIMP ani jak to zrobić. Widziałem różne skrypty do GIMP, ale one tylko robią coś z obrazem. Z VBA wiedziałbym co zrobić w Excelu, a tutaj nie wiem, czy iść tym tropem, czy sobie odpuścić Gimp. Może jest coś prostszego do tego celu? Najlepiej jakby można było rejestrować makro jak w MS Excelu, bo wtedy nie trzeba być mega programistą, aby taki skrypt posklejać.

No i czy mam zainteresować się konsolą Script-Fu, Pyton-Fu, czy raczej tworzyć pliki *.py lub *scm? Działam na Win7 lub Win10, oba 64bit.
Strony: [1]