On Thu, 2008-09-18 at 09:41 -0400, Brian J. Murrell wrote:
> A really nice editing feature would be the ability to pixelate a
> selected area of a photo.  The use case is for uploading photos to a web
> gallery but perhaps there are people in the picture who don't want their
> faces splashed all over the web.

To put my money where my mouth is (or code where my fingers are), here
is a patch for an addin to black out a selected area in a photograph:

diff -Nur 
../f-spot-0.5.0/extensions/Editors/BlackoutEditor/BlackoutEditor.addin.xml 
./extensions/Editors/BlackoutEditor/BlackoutEditor.addin.xml
--- ../f-spot-0.5.0/extensions/Editors/BlackoutEditor/BlackoutEditor.addin.xml  
1969-12-31 19:00:00.000000000 -0500
+++ ./extensions/Editors/BlackoutEditor/BlackoutEditor.addin.xml        
2008-09-18 20:31:16.000000000 -0400
@@ -0,0 +1,15 @@
+<Addin namespace="FSpot"
+       id="BlackoutEditor"
+       version="0.5.0.0"
+       name="BlackoutEditor"
+       description="Blackouts the image horizontally."
+       author="Ruben Vermeersch"
+       url="http://f-spot.org/Extensions";
+       category="Editors">
+       <Dependencies>
+               <Addin id="Core" version="0.5.0.0"/>
+       </Dependencies>
+       <Extension path = "/FSpot/Editors">
+               <Editor editor_type = "FSpot.Addins.Editors.BlackoutEditor"/>
+       </Extension>
+</Addin>
diff -Nur ../f-spot-0.5.0/extensions/Editors/BlackoutEditor/BlackoutEditor.cs 
./extensions/Editors/BlackoutEditor/BlackoutEditor.cs
--- ../f-spot-0.5.0/extensions/Editors/BlackoutEditor/BlackoutEditor.cs 
1969-12-31 19:00:00.000000000 -0500
+++ ./extensions/Editors/BlackoutEditor/BlackoutEditor.cs       2008-09-18 
22:31:07.000000000 -0400
@@ -0,0 +1,31 @@
+/*
+ * BlackoutEditor.cs
+ *
+ * Author(s)
+ *     Brian J. Murrell <[EMAIL PROTECTED]>
+ *
+ * This is free software. See COPYING for details.
+ */
+
+using FSpot;
+using FSpot.Editors;
+using Gdk;
+using Mono.Unix;
+using System;
+
+namespace FSpot.Addins.Editors {
+    class BlackoutEditor : Editor {
+        public BlackoutEditor () : base (Catalog.GetString ("Blackout"), 
"object-blackout") {
+                       CanHandleMultiple = true;
+        }
+
+        protected override Pixbuf Process (Pixbuf input, Cms.Profile 
input_profile) {
+                       Pixbuf output = input.Copy ();
+
+                       Pixbuf sub = new Pixbuf (output, State.Selection.x, 
State.Selection.y,
+                                       State.Selection.width, 
State.Selection.height);
+                       sub.Fill(0x00000000);
+                       return output;
+        }
+    }
+}
diff -Nur ../f-spot-0.5.0/extensions/Editors/BlackoutEditor/Makefile 
./extensions/Editors/BlackoutEditor/Makefile
--- ../f-spot-0.5.0/extensions/Editors/BlackoutEditor/Makefile  1969-12-31 
19:00:00.000000000 -0500
+++ ./extensions/Editors/BlackoutEditor/Makefile        2008-09-18 
20:32:34.000000000 -0400
@@ -0,0 +1,29 @@
+all: BlackoutEditor.dll
+
+PACKAGES = \
+       -pkg:f-spot \
+       -pkg:gtk-sharp-2.0
+
+ASSEMBLIES = \
+       -r:Mono.Posix
+
+RESOURCES = \
+       -resource:BlackoutEditor.addin.xml
+
+SOURCES = \
+       BlackoutEditor.cs
+
+install: all
+       cp *.dll ~/.gnome2/f-spot/addins/
+
+mpack: BlackoutEditor.dll
+       mautil p BlackoutEditor.dll
+
+BlackoutEditor.dll: $(SOURCES) BlackoutEditor.addin.xml
+       gmcs -target:library $(SOURCES) $(PACKAGES) $(ASSEMBLIES) $(RESOURCES)
+
+clean:
+       rm -f *.dll *~ *.bak .mpack
+
+PHONY:
+       install clean all mpack

Pixelate is next.  I wonder if I can find a nice easy pixelate algorithm
to implement or if I will have to invent my own.

Cheers,
b.

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
F-spot-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/f-spot-list

Reply via email to