summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-07-11 14:46:26 +0200
committerPrzemysław R. Pietraszczyk <przem@prymula.ct8.pl>2025-07-11 14:46:26 +0200
commitd3d2e0a76fcbff7c921202758d2ff881a5befffb (patch)
tree6d0319e4a0dd311834d1178a334d790cf81299e2
parente8d42b19bc5892de59924d108687bb09069a251a (diff)
Added przem-prussian-blue-effect-v3
-rwxr-xr-xpython-fu/3.0/przem-waved-cubism/przem-waved-cubism.py244
-rw-r--r--script-fu/3.0/przem-apply-sepia-v3.scm2
-rw-r--r--script-fu/3.0/przem-prussian-blue-effect-v3.scm71
-rw-r--r--script-fu/changelog.md264
4 files changed, 451 insertions, 130 deletions
diff --git a/python-fu/3.0/przem-waved-cubism/przem-waved-cubism.py b/python-fu/3.0/przem-waved-cubism/przem-waved-cubism.py
new file mode 100755
index 0000000..4a3070f
--- /dev/null
+++ b/python-fu/3.0/przem-waved-cubism/przem-waved-cubism.py
@@ -0,0 +1,244 @@
+#!/usr/bin/env python3
+# przem-waved-cubism - filtr dodający efekt falowania obrazu
+# 2025-03-04 © Przemysław R. Pietraszczyk
+# licencja: Public Domain
+# edytor: Geany
+# ver. 2.250306-0~beta
+
+import gi
+gi.require_version('Gimp', '3.0')
+from gi.repository import Gimp
+gi.require_version('GimpUi', '3.0')
+from gi.repository import GimpUi
+gi.require_version('Gegl', '0.4')
+from gi.repository import Gegl
+from gi.repository import GObject
+from gi.repository import GLib
+from gi.repository import Gio
+import time
+import sys
+import math
+
+def N_(message): return message
+def _(message): return GLib.dgettext(None, message)
+
+def sincos_func( data, sincos):
+
+ h = True
+ angle1 = 0.1
+ angle2 = 0.1
+ width = len(data[0])
+ height = len(data)
+ for y in range(0, height):
+
+ for x in range(0, width):
+ mod1 = x % 25
+ if mod1 == 0:
+ angle1 *= -1
+ mod2 = x % 25
+ if mod2 == 0:
+ if h == True:
+ angle1 = 0.1
+ h = False
+ else:
+ angle1 = -0.1
+ h = True
+
+ if h == True:
+ angle1 += -0.1
+ else:
+ angle1 += 0.1
+
+
+
+
+ lineX = int(10*math.sin(angle1) + x)
+ lineY = int(10*math.sin(angle1) + y)
+
+ print ("lineX: " + str(lineX) + " lineY: " + str(lineY))
+ if lineX >= width:
+ continue
+ if lineY >= height:
+ continue
+ if lineX < 0:
+ continue
+ if lineY < 0:
+ continue
+
+ #if x >= width:
+ # continue
+ #if y >= height:
+ # continue
+ ##else:
+ # print ("ZA: "+ str(x) + " " + str(y))
+ #sincos[lineY][lineX] = (data[y][x][0], data[y][x][1], data[y][x][2])
+ sincos[y][x] = (data[lineY][lineX][0], data[lineY][lineX][1], data[lineY][lineX][2])
+"""
+def get_pixel_color(pixbuf, x, y):
+ # Pobierz szerokość i wysokość obrazu
+ width = pixbuf.get_width()
+ height = pixbuf.get_height()
+
+ # Sprawdź, czy współrzędne są w granicach obrazu
+ if x < 0 or x >= width or y < 0 or y >= height:
+ raise ValueError("Współrzędne poza zakresem obrazu")
+
+ # Pobierz dane pikseli
+ pixels = pixbuf.get_pixels()
+ rowstride = pixbuf.get_rowstride()
+ n_channels = pixbuf.get_n_channels()
+
+ # Oblicz pozycję piksela w danych
+ offset = y * rowstride + x * n_channels
+
+
+ # Pobierz wartości kanałów koloru (R, G, B, A)
+ red = pixels[offset]
+ green = pixels[offset + 1]
+ blue = pixels[offset + 2]
+ alpha = pixels[offset + 3] if n_channels == 4 else 255
+
+ #return (red, green, blue, alpha)
+ return (red, green, blue)
+"""
+
+def create_pixbuf_from_rgb_tuples(drawable, colors, width, height):
+ # Sprawdź, czy liczba kolorów odpowiada wymiarom obrazu
+ #if len(colors) != width * height:
+ # raise ValueError("Liczba kolorów musi być równa width * height")
+
+ # Przekształć krotki RGB na dane pikseli
+ pixels = bytearray()
+ x = 0
+ y = 0
+ for row in colors:
+ for color in row:
+ r, g, b = color # Rozpakuj krotkę (R, G, B)
+ pixels.extend([r, g, b])
+
+
+ # Ustawienie koloru pierwszego planu (np. czerwony)
+ #pdb.gimp_context_set_foreground((r, g, b))
+ Gimp.context_set_foreground((r, g, b))
+
+ # Wybór pędzla (np. "Circle (11)")
+ #pdb.gimp_context_set_brush("Circle (01)")
+ Gimp.context_set_brush("Circle (01)")
+
+ # Rysowanie linii od punktu (50, 50) do punktu (450, 450)
+ #pdb.gimp_paintbrush_default(drawable, 2, [x, y, x, y])
+ Gimp.paintbrush_default(drawable, 2, [x, y, x, y])
+
+ x += 1
+ x = 0
+ y += 1
+
+
+
+
+
+ #return pixbuf
+
+def plugin_func(procedure, run_mode, image, drawable, config, data):
+
+ width = image.width
+ height = image.height
+ #duplicate_image = pdb.gimp_image_duplicate(image)
+ #duplicate_drawable = pdb.gimp-image-get-active-drawable(duplicate_image)
+
+ if run_mode == Gimp.RunMode.INTERACTIVE:
+ GimpUi.init('przem-waved-cubism')
+
+ dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)
+ dialog.fill(None)
+ if not dialog.run():
+ dialog.destroy()
+ return procedure.new_return_values(Gimp.PDBStatusType.CANCEL, GLib.Error())
+ else:
+ dialog.destroy()
+
+ color = config.get_property('color')
+
+
+
+ # Dodaj skopiowany obraz do listy obrazów w GIMPie
+ #gimp.Display(duplicate_image)
+
+ Gimp.context_push()
+ image.undo_group_start()
+
+ #pdb.gimp-selection-none(duplicate_image)
+ #pdb.gimp-context-push()
+ #pdb.gimp-context-set-defaults()
+ grid = []
+ for y in range (0, height):
+ pix_width = []
+ for x in range (0, width):
+ #pix_width.append(get_pixel_color(duplicate_drawable, x, y))
+ pix_width.append(drawable.get_pixel(x, y))
+ grid.append(pix_width)
+
+ sincos = []
+ for y in range (0, height):
+ pix_width = []
+ for x in range (0, width):
+ pix_width.append((0, 0, 0))
+ sincos.append(pix_width)
+
+ sincos_func(grid, sincos)
+ create_pixbuf_from_rgb_tuples(drawable, sincos, width, height)
+
+ Gimp.displays_flush()
+
+ image.undo_group_end()
+ Gimp.context_pop()
+
+
+ return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, GLib.Error())
+
+
+
+class WavedCubism (Gimp.PlugIn):
+ ## GimpPlugIn virtual methods ##
+ def do_set_i18n(self, procname):
+ return True, 'gimp30-python', None
+
+ def do_query_procedures(self):
+ return ['przem-waved-cubism']
+
+ def do_create_procedure(self, name):
+ Gegl.init(None)
+
+ _color = Gegl.Color.new("black")
+ _color.set_rgba(0.94, 0.71, 0.27, 1.0)
+
+ procedure = Gimp.Procedure.new(self, name,
+ Gimp.PDBProcType.PLUGIN,
+ plugin_func, None)
+
+ if procedure is not None:
+
+ procedure.set_image_types("RGB*, GRAY*")
+
+
+ procedure.set_menu_label(_("Make waved cubism on image"))
+ procedure.set_documentation ('Make waved cubism on image',
+ 'Make waved cubism on image',
+ name)
+
+ procedure.set_attribution("Przemysław R. Pietraszczyk",
+ "Public Domain", "2025-03-04")
+
+
+ #procedure.add_string_argument ("name", _("Layer _name"), _("Layer name"),
+ # _("Clouds"), GObject.ParamFlags.READWRITE)
+
+ procedure.add_color_argument ("color", _("_BG color"), _("BG color"),
+ True, _color, GObject.ParamFlags.READWRITE)
+
+ procedure.add_menu_path ("<Image>/Filters/PIETRASZCZYK")
+
+ return procedure
+
+Gimp.main(WavedCubism.__gtype__, sys.argv)
+
diff --git a/script-fu/3.0/przem-apply-sepia-v3.scm b/script-fu/3.0/przem-apply-sepia-v3.scm
index aa495b7..e820200 100644
--- a/script-fu/3.0/przem-apply-sepia-v3.scm
+++ b/script-fu/3.0/przem-apply-sepia-v3.scm
@@ -132,7 +132,7 @@
(gimp-displays-flush)
) )
-(script-fu-register-filter "przem-apply-sepia-v3"
+(script-fu-register-filterscript-fu-register-filter "przem-apply-sepia-v3"
_"_Apply a sepia effect to the image"
_"Tworzy obraz sepii"
"Przemyslaw R. Pietraszczyk"
diff --git a/script-fu/3.0/przem-prussian-blue-effect-v3.scm b/script-fu/3.0/przem-prussian-blue-effect-v3.scm
new file mode 100644
index 0000000..720e83b
--- /dev/null
+++ b/script-fu/3.0/przem-prussian-blue-effect-v3.scm
@@ -0,0 +1,71 @@
+; przem-prussian-blue-effect-v3 - nieudalna próba nawiązania do efektu cyjanotypii
+; author: PRP
+; licencja: Public Domain
+; Gdańsk - 22-6-2025
+; ver. 2.250711-0~beta
+
+(define (przem-prussian-blue-effect-v3 img drawable black value-blue brightness contrast)
+
+ (let* ((gradient-layer 0)
+ (in-layer (vector-ref drawable 0))
+ (mask (car (gimp-channel-new img "Engraving Mask" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) black '(0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0))))
+ )
+ (gimp-image-undo-group-start img)
+ (gimp-context-push)
+ (gimp-context-set-defaults)
+
+ (if (> (car (gimp-drawable-type in-layer)) 1)
+ (gimp-image-convert-rgb img))
+ ; dla obrazów przestrzeni RGB i Gray, utworzenie nowej warstwy, dopiero po kowersji na rgb
+ (set! gradient-layer (car (gimp-layer-new img "Prussian Blue" (car (gimp-image-get-width img)) (car (gimp-image-get-height img)) RGBA-IMAGE 100 LAYER-MODE-NORMAL)))
+
+ (gimp-image-insert-layer img gradient-layer 0 -1)
+ (gimp-context-set-foreground '(0 51 102)) ; Kolor błękitu pruskiego
+ (gimp-context-set-background '(0 0 0))
+ ;(if (= mode 0) (gimp-layer-set-mode gradient-layer OVERLAY-MODE))
+ ;(if (= mode 1) (gimp-layer-set-mode gradient-layer SCREEN-MODE))
+
+ (gimp-drawable-brightness-contrast gradient-layer brightness contrast)
+
+
+ ;(plug-in-colors-channel-mixer TRUE img gradient-layer TRUE 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0)
+ (gimp-image-insert-channel img mask -1 0)
+
+ ;(gimp-edit-blend gradient-layer FG-BG-RGB-MODE NORMAL-MODE GRADIENT-LINEAR 100 0 REPEAT-NONE FALSE FALSE 0 0 TRUE 0 0 0 0)
+
+ (gimp-drawable-edit-gradient-fill gradient-layer
+ GRADIENT-LINEAR 0
+ FALSE 1 0
+ TRUE
+ 0 0 0 0)
+
+ ;(if (= invert TRUE) (gimp-invert gradient-layer))
+
+ (gimp-layer-set-opacity gradient-layer value-blue)
+
+ (let* ((merged-layer (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE))))
+ (gimp-item-set-visible merged-layer TRUE))
+
+ (gimp-image-undo-group-end img)
+ (gimp-displays-flush)
+ (gimp-context-pop)
+ )
+)
+
+(script-fu-register-filter "przem-prussian-blue-effect-v3"
+ _"Apply prussian blue effect"
+ _"Nakłada efekt błękitu pruskiego na zdjęcie."
+ "PRP"
+ "Public Domain"
+ "2025-06-22"
+ "RGB* GRAY*"
+ SF-ONE-OR-MORE-DRAWABLE
+ SF-ADJUSTMENT "Black" '(5 0 100 1 10 0 0)
+ SF-ADJUSTMENT "Blue intensity" '(60 0 100 1 10 0 0)
+ SF-ADJUSTMENT "Brightness" '(0 -1 1 0.0001 0.0001 2 0)
+ SF-ADJUSTMENT "Contrast" '(0 -1 1 0.0001 0.0001 2 0)
+
+)
+
+(script-fu-menu-register "przem-prussian-blue-effect-v3"
+ "<Image>/Filters/PIETRASZCZYK/")
diff --git a/script-fu/changelog.md b/script-fu/changelog.md
index bca2d9e..1135ae7 100644
--- a/script-fu/changelog.md
+++ b/script-fu/changelog.md
@@ -1,129 +1,135 @@
-# [2.250622-0] przem-prossian-blue-effect.scm
-* Dodane filtra imitującego "pruski błękit"
-
-# [2.250619-3] przem-soft-focus-noninteractive-v3.scm
-* Dodanie filtra wywolywanego z linii poleceń - nie uruchamia się
-
-# [2.250618-0] przem-cyanotype-gum-effect.scm
-* Dodanie efektu zastosowania cyjanotypi wraz z gumą dwuchromianową\
-
-# [2.250616-0] przem-soft-focus-noninteractive.scm
-* Dodanie filtra wywolywanego z linii poleceń
-
-# [2.250615-0] przem-soft-focus.scm
-* Dodanie filtra "miękkiego focusa' - w nawiązaniu do piktorializmu
-
-# [2.250610-4] przem-expired-negative.scm
-* Konwersja z RGB na colorspace Gray
-
-# [2.250610-3] przem-expired-negative.scm
-* Dzielnik mgły, zwiększony do 0.50
-
-# [2.250610-2] przem-expired-negative.scm
-* Dodanie suwaka density
-
-# [2.250610-1] przem-expired-negative.scm
-* Przy odwolywaniu się do wspólnej funkcji gradientu - filtr dzialą nieprawidlowo
-* Możliwa zmiana odcieniu gradientu (background)
-
-# [2.250608-3] przem-expired-negative.scm
-* Dodaje efekt prawidłowo, zarówno na dole jak i na górze
-
-# [2.250608-2] przem-expired-negative.scm
-* Dodaje efekt expire ORWO do poziomego zdjęcia, jednak nie równomiernie
-
-# [2.250525-1] przem-expired-negative.scm
-* Rozróżnia rodzaj obrazu. Jednak prawidłowo przetwarza jedynie póki co portrety
-
-# [2.250522-4] przem-expired-negative.scm
-* Mgła jest prawidłowo rozmieszczana po przegach
-
-# [2.250522-0] przem-expired-negative.scm
-* Filtr imitujący przetermonowany negatyw ORWO - Inicjacja
-
-# [2.250225-2] przem-apply-waves-effect.scm
-* Filtr, działać, działa. Jednak wynik, trudno uzanć za falowanie.
-
-# [2.250225-1] przem-apply-waves-effect.scm
-* Pierwszy mały sukces
-
-# [2.250225-0] przem-apply-waves-effect.scm
-* Próba skopiowania barwy pixela
-
-# [2.250224-0] przem-apply-waves-effect.scm
-* Nowa propozycja z sincosinus
-
-# [2.250223-3] przem-apply-cents-effect.scm
-* Drobne literówki
-
-# [2.250223-2] przem-apply-cents-effect.scm
-* Dodanie nowego filtra - centkowanie
-
-# [2.250223-0] przem-apply-waves-effect.scm
-* Dodanie nowego filtra
-
-# [2.250222-0] przem-apply-sepia-v3.scm
-* Korekta w SF_OPTION
-
-# [2.250221-0] przem-apply-sepia-v3.scm
-* Dodanie potrójnego pola wyboru dla rodzaju gradientu.
-
-# [2.25021=20-0] przem-apply-sepia-v3.scm
-* Przeniesienie 'gimp-layer-new' do wewnątrz skryptu - desaturate dalej zwraca błąd przy zdjęciach monochromatycznych
-
-# [2.250219-1] przem-apply-sepia-v3.scm
-* Dodanie 'gimp-image-flatten', bez efektu
-
-# [2.250219-0] przem-apply-sepia-v3.scm
-* Dodanie suwaka z shadow-sepia użytego jako argument 'gimp-drawable-edit-gradient-fill'
-
-# [2.250217-0] przem-traditional-photo.scm && przem-traditional-photo-v3.scm
-* Zmniejszyłem skrajne parametry do -100 i 100 dla skali kontrastu i balansu koloru
-
-# [2.250216-3] przem-traditional-photo-v3.scm
-* Dodanie krosowania. Jednak można odnieść wrażenie że zmiana balans koloru nie daje żądnego efektu
-
-# [2.250216-2] przem-traditional-photo-v3.scm
-* Rezygnacja ze suwaka kontrastu na rzecz zmiennej ( -0.15625 )- możliwe że wersja dla 2.10 wykrzącza się przez zbyt wysoki argument dla kontrastu
-
-# [2.250216-1] przem-traditional-photo.scm
-* Kosmetyka danych suwaka
-
-# [2.250216-0] przem-traditional-photo.scm
-* Dodanie suwaka ze zmianą kontrastu oraz suwaka z balansem koloru
-
-# [2.250215-2] przem-traditional-photo.scm
-* dodanie nowego skryptu korsującego zdjęcie
-
-# [2.250215-1] przem-apply-sepia.scm - przem-add-background-under-text.scm
-* Oba skrypty pracują nieprawidłowo z obrazem w odcieniach szarości
-
-# [2.250215-0] przem-apply-sepia.scm
-* BUG ? Nie potrafi przekonwertować obrazka GRAY na RGB - w przypadku szarego obrazu nakłąda jedynie gradient, bez sepii
-
-# [1.250214-0] przem-apply-sepia.scm
-* Częściowe dostosowanie wtyczki do nowego API z RC2 - póki co przetwarza jedynie kolorowe obrazy
-
-# [1.250213-0] przem-apply-sepia.scm
-* Dodałem lepszy gradient, revers gradientu oraz kształt okręgu
-
-# [1.250212-0] przem-apply-sepia.scm
-* Opruje już jedynie na dwóch odcieniach sepii
-
-# [1.250212-0] przem-add-background-under-text.scm
-* Możliwość zmiany koloru tła i czcionki wewnątrz wtyczki, nie można zmienić czcionki. Potrafi się wykrzaczyć
-
-# [1.250910-0~alpha]
-* Wersja alpha 'przem-add-background-under-text.scm', pokazuje samo tło i w dodatku w złym miejscu
-
-# [1.250910-2]
-* Wersja stabilna 'przem-apply-sepia.scm' dla 3.0
-
-# [1.250209-1]
-* Wersja stabilna 'przem-add-background-under-text.scm' dla 2.10
-
-# [0.250207-0]
-* Incjacja skryptu 'przem-apply-sepia.scm'
-
-# [0.250206-0]
-* Incjacja skryptu 'przem-add-background-under-text.scm'
+# [2.250711-0] przem-prossian-blue-effect-v3.scm
+* Dodałem łączenie warstw, więc można już dodać na przykład ramkę
+
+# [2.250710-0] przem-prossian-blue-effect-v3.scm
+* Port filtra dla Gimpa 3.0
+
+# [2.250622-0] przem-prossian-blue-effect.scm
+* Dodane filtra imitującego "pruski błękit"
+
+# [2.250619-3] przem-soft-focus-noninteractive-v3.scm
+* Dodanie filtra wywolywanego z linii poleceń - nie uruchamia się
+
+# [2.250618-0] przem-cyanotype-gum-effect.scm
+* Dodanie efektu zastosowania cyjanotypi wraz z gumą dwuchromianową\
+
+# [2.250616-0] przem-soft-focus-noninteractive.scm
+* Dodanie filtra wywolywanego z linii poleceń
+
+# [2.250615-0] przem-soft-focus.scm
+* Dodanie filtra "miękkiego focusa' - w nawiązaniu do piktorializmu
+
+# [2.250610-4] przem-expired-negative.scm
+* Konwersja z RGB na colorspace Gray
+
+# [2.250610-3] przem-expired-negative.scm
+* Dzielnik mgły, zwiększony do 0.50
+
+# [2.250610-2] przem-expired-negative.scm
+* Dodanie suwaka density
+
+# [2.250610-1] przem-expired-negative.scm
+* Przy odwolywaniu się do wspólnej funkcji gradientu - filtr dzialą nieprawidlowo
+* Możliwa zmiana odcieniu gradientu (background)
+
+# [2.250608-3] przem-expired-negative.scm
+* Dodaje efekt prawidłowo, zarówno na dole jak i na górze
+
+# [2.250608-2] przem-expired-negative.scm
+* Dodaje efekt expire ORWO do poziomego zdjęcia, jednak nie równomiernie
+
+# [2.250525-1] przem-expired-negative.scm
+* Rozróżnia rodzaj obrazu. Jednak prawidłowo przetwarza jedynie póki co portrety
+
+# [2.250522-4] przem-expired-negative.scm
+* Mgła jest prawidłowo rozmieszczana po przegach
+
+# [2.250522-0] przem-expired-negative.scm
+* Filtr imitujący przetermonowany negatyw ORWO - Inicjacja
+
+# [2.250225-2] przem-apply-waves-effect.scm
+* Filtr, działać, działa. Jednak wynik, trudno uzanć za falowanie.
+
+# [2.250225-1] przem-apply-waves-effect.scm
+* Pierwszy mały sukces
+
+# [2.250225-0] przem-apply-waves-effect.scm
+* Próba skopiowania barwy pixela
+
+# [2.250224-0] przem-apply-waves-effect.scm
+* Nowa propozycja z sincosinus
+
+# [2.250223-3] przem-apply-cents-effect.scm
+* Drobne literówki
+
+# [2.250223-2] przem-apply-cents-effect.scm
+* Dodanie nowego filtra - centkowanie
+
+# [2.250223-0] przem-apply-waves-effect.scm
+* Dodanie nowego filtra
+
+# [2.250222-0] przem-apply-sepia-v3.scm
+* Korekta w SF_OPTION
+
+# [2.250221-0] przem-apply-sepia-v3.scm
+* Dodanie potrójnego pola wyboru dla rodzaju gradientu.
+
+# [2.25021=20-0] przem-apply-sepia-v3.scm
+* Przeniesienie 'gimp-layer-new' do wewnątrz skryptu - desaturate dalej zwraca błąd przy zdjęciach monochromatycznych
+
+# [2.250219-1] przem-apply-sepia-v3.scm
+* Dodanie 'gimp-image-flatten', bez efektu
+
+# [2.250219-0] przem-apply-sepia-v3.scm
+* Dodanie suwaka z shadow-sepia użytego jako argument 'gimp-drawable-edit-gradient-fill'
+
+# [2.250217-0] przem-traditional-photo.scm && przem-traditional-photo-v3.scm
+* Zmniejszyłem skrajne parametry do -100 i 100 dla skali kontrastu i balansu koloru
+
+# [2.250216-3] przem-traditional-photo-v3.scm
+* Dodanie krosowania. Jednak można odnieść wrażenie że zmiana balans koloru nie daje żądnego efektu
+
+# [2.250216-2] przem-traditional-photo-v3.scm
+* Rezygnacja ze suwaka kontrastu na rzecz zmiennej ( -0.15625 )- możliwe że wersja dla 2.10 wykrzącza się przez zbyt wysoki argument dla kontrastu
+
+# [2.250216-1] przem-traditional-photo.scm
+* Kosmetyka danych suwaka
+
+# [2.250216-0] przem-traditional-photo.scm
+* Dodanie suwaka ze zmianą kontrastu oraz suwaka z balansem koloru
+
+# [2.250215-2] przem-traditional-photo.scm
+* dodanie nowego skryptu korsującego zdjęcie
+
+# [2.250215-1] przem-apply-sepia.scm - przem-add-background-under-text.scm
+* Oba skrypty pracują nieprawidłowo z obrazem w odcieniach szarości
+
+# [2.250215-0] przem-apply-sepia.scm
+* BUG ? Nie potrafi przekonwertować obrazka GRAY na RGB - w przypadku szarego obrazu nakłąda jedynie gradient, bez sepii
+
+# [1.250214-0] przem-apply-sepia.scm
+* Częściowe dostosowanie wtyczki do nowego API z RC2 - póki co przetwarza jedynie kolorowe obrazy
+
+# [1.250213-0] przem-apply-sepia.scm
+* Dodałem lepszy gradient, revers gradientu oraz kształt okręgu
+
+# [1.250212-0] przem-apply-sepia.scm
+* Opruje już jedynie na dwóch odcieniach sepii
+
+# [1.250212-0] przem-add-background-under-text.scm
+* Możliwość zmiany koloru tła i czcionki wewnątrz wtyczki, nie można zmienić czcionki. Potrafi się wykrzaczyć
+
+# [1.250910-0~alpha]
+* Wersja alpha 'przem-add-background-under-text.scm', pokazuje samo tło i w dodatku w złym miejscu
+
+# [1.250910-2]
+* Wersja stabilna 'przem-apply-sepia.scm' dla 3.0
+
+# [1.250209-1]
+* Wersja stabilna 'przem-add-background-under-text.scm' dla 2.10
+
+# [0.250207-0]
+* Incjacja skryptu 'przem-apply-sepia.scm'
+
+# [0.250206-0]
+* Incjacja skryptu 'przem-add-background-under-text.scm'