From c29f1d7a6c1ef60a711687ace67f413e4e325989 Mon Sep 17 00:00:00 2001 From: maniu Date: Mon, 2 Mar 2026 20:17:44 +0100 Subject: [PATCH] Upload files to "python-fu-instagram-1977" --- python-fu-instagram-1977/Instagram1977.py | 107 ++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 python-fu-instagram-1977/Instagram1977.py diff --git a/python-fu-instagram-1977/Instagram1977.py b/python-fu-instagram-1977/Instagram1977.py new file mode 100644 index 0000000..dd9c8a7 --- /dev/null +++ b/python-fu-instagram-1977/Instagram1977.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +import gi +gi.require_version('Gimp', '3.0') +from gi.repository import Gimp +gi.require_version('GimpUi', '3.0') +from gi.repository import GimpUi +from gi.repository import GObject +from gi.repository import GLib +from gi.repository import Gio +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk +from pathlib import Path +from typing import Any, Callable, List, Optional, Tuple, Union +import os, sys, string, tempfile, platform +gi.require_version('Gegl', '0.4') +from gi.repository import Gegl + + + +RGB_MODE = Gimp.LayerCompositeMode.AUTO +NORMAL_MODE = Gimp.LayerMode.NORMAL + +class PythonInstagram1977(Gimp.PlugIn): + ## GimpPlugIn virtual methods ## + def do_set_i18n(self, procname): + return True, 'gimp30-python', None + + def do_query_procedures(self): + return [ 'Instagram1977' ] + + def do_create_procedure(self, name): + procedure = Gimp.ImageProcedure.new(self, name, + Gimp.PDBProcType.PLUGIN, + self.instagram1977, None) + procedure.set_sensitivity_mask(Gimp.ProcedureSensitivityMask.ALWAYS) + procedure.set_image_types("RGB*") + procedure.set_documentation ("Instagram1977", + "Instagram1977", + name) + procedure.set_attribution("M", + "(c) GPL V3.0 or later", + "2026") + procedure.set_menu_label("Instagram1977") + procedure.add_menu_path('/Filters/') + + return procedure + + def instagram1977(self, procedure, run_mode, img, drawables, config, run_data ): + + Gimp.context_pop() + img.undo_group_start() + + lg = Gimp.GroupLayer.new(img) + lg.set_name("1977 Effect") + img.insert_layer(lg, None,-1) + + drawCopy = Gimp.Layer.new_from_drawable(drawables[0],img) + img.insert_layer(drawCopy,lg,0) + #adjust curves colors + drawCopy.curves_spline(0,(0,60, 65,70, 255,255) ) + Gimp.Selection.all(img) + + sel_size = Gimp.Selection.bounds(img) + w = sel_size.x2 - sel_size.x1 + h = sel_size.y2 - sel_size.y1 + + l = Gimp.Layer.new(img,"1977Col",w,h,RGB_MODE,100,Gimp.LayerMode.DARKEN_ONLY) + img.insert_layer(l, lg,0) + color = Gegl.Color.new("rgb(227,255,215)") + Gimp.context_set_foreground(color) + l.edit_fill(Gimp.FillType.FOREGROUND) + Gimp.Selection.none(img) + #add white border + Wborder = Gimp.Layer.new(img,"whiteBorder",w,h,RGB_MODE,100,NORMAL_MODE) + img.insert_layer(Wborder, lg, 0) + wcolor = Gegl.Color.new("white") + Gimp.context_set_foreground(wcolor) + img.select_rectangle(0, 0,0, w,h ) + dimBorder=int( (w/100)*2 ) + if dimBorder<5: + dimBorder=5 + Gimp.Selection.shrink(img, dimBorder) + Gimp.Selection.invert(img) + Wborder.edit_fill(Gimp.FillType.FOREGROUND) + Gimp.Selection.none(img) + + #add black border + Bborder = Gimp.Layer.new(img,"blackBorder",w,h,RGB_MODE,100,NORMAL_MODE) + img.insert_layer(Bborder,lg , 0) + bcolor = Gegl.Color.new("#000000") + Gimp.context_set_foreground(bcolor) + img.select_rectangle( 0, 0,0, w,h ) + + dimBorder=int( (w/100)*2 ) + if dimBorder < 5: + dimBorder = 5 + Gimp.Selection.shrink(img, dimBorder) + Gimp.Selection.invert(img) + Bborder.edit_fill(Gimp.FillType.FOREGROUND) + Gimp.Selection.none(img) + + img.undo_group_end() + Gimp.displays_flush() + + return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, None) + +Gimp.main(PythonInstagram1977.__gtype__, sys.argv) \ No newline at end of file