Release Pinta - Paint Easy


ptitSeb

Serial Porter
Joined
Aug 15, 2012
Messages
9,332
Age
52
Location
France, near Lyon
Here is Pinta, a clone of Paint.NET for Linux.

You will need the Mono RunTime PND for this to run (just put the PND in the usual place, and pinta will find and use it automatically)

preview1.png

Pinta is powerfull and complete painting software, with many options available. It can be compared to GIMP, but much easier to use.

History log
========

Build 04
-----------

  • Using latest sources (1.7 now)
  • Needs MonoRT build 05+
Build 03
-----------

  • Improved startup script
Build 02
-----------

  • Fixed ShapeTool that wasn't refreshing correctly.
  • Fixed initial setup.
Build 01
-----------

  • Initial build
  • Reduced size of toolbar to maximize usable space
 
Last edited:
Hum, it looks like there was already a Pinta released to the repo by @Eyescreate. I hadn't checked before publishing :(
 
Presumably his version includes the Mono runtime, judging the the relative sizes of the projects. I guess there's value having a standalone version as well as your version out there, plus yours is a year newer, including the updates since his version.
 
in all cases, thanks, will check it out... :ph34r:
 
Last edited by a moderator:
New Build. I noticed that the Shape Tools (circle, rectangle, etc) were not showing properly. It's an issue with the "invalidate" function that is picky, so I invalidate all the canvas instead of a dirty rect (I had to do the same on build 01 with the Brush Tool).

Also, I renamed the Appli to differenciate it from previous version from eyescreate.

Build 02

-----------

  • Fixed ShapeTool that wasn't refreshing correctly.
  • Fixed initial setup.
 
Last edited by a moderator:
New update. Minor one, I have just improved the startup script, to not mount MonoRT if uneeded, and better unmounting of it at the end. No other change in the package.

Build 03

-----------

  • Improved startup script
 
It is a brilliant programme :) I have been using it daily for a number of weeks, mostly to edit in a few short words in Times font as to where and when the photo was taken. Splendid job! For me and for this purpose, far easier to use than GIMP and any other image manipulation programmes in the Repo. :) .

The only thing I miss is an in-built "delete image" function. I´d like to check out the PlugIns but I´m afraid there aren´t many : http://pintaproject.github.io/Pinta-Community-Addins/repository/All/

That´s ok though, I find it brilliant the way it is. Thank you, ptitSeb, for Pandora´ing it :)
 
Last edited by a moderator:
Still use it almost every day; just one question: 3 out of 4 times, cutting and cropping does not really work, the cropped image is at best only a fraction of the marked field, and very often, when I undo this, up pops an error message which has words to the extent of "divided by zero" in it.
Is there an obvious reason for this, something which I might be doing wrong? :) Just asking.
I always have a big swapfile (Classic Pandora), Superzaxxon 1.70, which I think was current in 2014.
Anyway, this is my favorite graphic programme on the Pandora.
Just downloaded Pinta (vs. 1.6) for Windows either (http://pinta-project.com/), will see how this^^ "cropping-failure" behaves there, and report. :)
 
Last edited by a moderator:
Still use it almost every day; just one question: 3 out of 4 times, cutting and cropping does not really work, the cropped image is at best only a fraction of the marked field, and very often, when I undo this, up pops an error message which has words to the extent of "divided by zero" in it.
Is there an obvious reason for this, something which I might be doing wrong? :) Just asking.
I always have a big swapfile (Classic Pandora), Superzaxxon 1.70, which I think was current in 2014.
Anyway, this is my favorite graphic programme on the Pandora.
Just downloaded Pinta (vs. 1.6) for Windows either (http://pinta-project.com/), will see how this^^ "cropping-failure" behaves there, and report. :)

It may just be buggy. I have to refresh that app (and MonoRT and all other mono based pnd I have done too).
 
This would be nice of course but you really do not "have" to :)
Just mentioned it to see maybe someone else has noticed this, because this was the only really faulty thing, I´m afraid with Pinta 1.6 on Windows, cropping is no problem, I have just tried it out.
Pinta on Pandora (I mean this version without MonoRT in it) works wonderfully even with this little problem, I usually comment snapshot photos by editing a few words each onto a photo, must have done this well over a thousand times so far, and I have gotten used to start up piv or mtpaint each time I do crops:)
 
Last edited by a moderator:
To go with the new update of MonoRT, here is an update of Pinta, using latest sources from github...

Build 04
-----------

  • Using latest sources (1.7 now)
  • Needs MonoRT build 05+
 
Last edited:
Thank you so much for this! I still use it almost daily, for inserting text into photos :) will try how the old "crop bug" and "even if crop worked, sometimes can no more save bug" are still around, and report if I notice anything :)
[doublepost=1468687734,1468686502][/doublepost]So sorry, still the same: approximately 3 out off 4 times when "cropping", it crashes with a verbose "divide by zero" error. But don´t worry. For inserting text into pics this is and stays easier tham GIMP and better than mtPaint. Thanks again for the update - it might also be my Pandora acting up, I can try Pinta on my other CC though if wanted. For what I need Pinta is perfect.
 
Sure :)

First, the exact message text, in Pinta, during a"crash while crop" reads:

Unhandled exception:
must be greater than 0
Parameter name: numerator

>>Details:
System.ArgumentOutOfRangeException: must be greater than 0
Parameter name: numerator
at Pinta.Core.ScaleFactor..ctor (Int32 numerator, Int32 denominator) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.CanvasRenderer.Initialize (Size sourceSize, Size destinationSize) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.PintaCanvas.OnExposeEvent (Gdk.EventExpose e) [0x00000] in <filename unknown>:0
at Gtk.Widget.exposeevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0

And here the pndrun:
=======================================================================================
PND : /media/PANDORA/pandora/apps/pinta.pnd
PND_FSTYPE : Squashfs
APPDATADIR : /media/PANDORA/pandora/appdata/pinta
APPDD_FSTYPE : vfat
PND_CPUSPEED : <unset>
EXENAME : runscript.sh
ARGUMENTS : <unset>
=======================================================================================
[ START ]--- Mount the PND ----------
WARNING Union already mounted, using it
+++++++
Loopback devices :
/dev/loop0: [b301]:16 (/media/PANDORA/pandora/apps/wally.pnd)
/dev/loop2: [b301]:33707 (/media/PANDORA/pandora/apps/pinta-ptitseb.pnd)
/dev/loop3: [b301]:33609 (/media/PANDORA/pandora/menu/monort.pnd)
Are mounted on :
/dev/loop0 on /mnt/utmp/wally type squashfs (ro,relatime)
/dev/loop2 on /mnt/utmp/pinta type squashfs (ro,relatime)
/dev/loop3 on /mnt/utmp/monort type squashfs (ro,relatime)
For these Union :
none on /mnt/utmp/wally type aufs (rw,relatime,si=6d3f6065,noplink)
none on /mnt/utmp/pinta type aufs (rw,relatime,si=61682065,noplink)
none on /mnt/utmp/monort type aufs (rw,relatime,si=61683065,noplink)
[SUCCESS]--- Mount the PND ----------
[ START ]--- Starting the application ( runscript.sh ) ----------
WARNING Union already mounted, using it
+++++++
Loopback devices :
/dev/loop0: [b301]:16 (/media/PANDORA/pandora/apps/wally.pnd)
/dev/loop2: [b301]:33707 (/media/PANDORA/pandora/apps/pinta-ptitseb.pnd)
/dev/loop3: [b301]:33609 (/media/PANDORA/pandora/menu/monort.pnd)
Are mounted on :
/dev/loop0 on /mnt/utmp/wally type squashfs (ro,relatime)
/dev/loop2 on /mnt/utmp/pinta type squashfs (ro,relatime)
/dev/loop3 on /mnt/utmp/monort type squashfs (ro,relatime)
For these Union :
none on /mnt/utmp/wally type aufs (rw,relatime,si=6d3f6065,noplink)
none on /mnt/utmp/pinta type aufs (rw,relatime,si=61682065,noplink)
none on /mnt/utmp/monort type aufs (rw,relatime,si=61683065,noplink)
monort pnd build 4
Welcome to mono command line
.
you can compile C# program with xbuild
or use MonoDevelop GUI with monodevelop
.
type exit to close this window
.

(Pinta:6670): Gtk-WARNING **: Attempting to set the permissions of `/mnt/utmp/pinta/recently-used.xbel', but failed: Operation not permitted

(Pinta:6670): Gtk-WARNING **: Attempting to set the permissions of `/mnt/utmp/pinta/recently-used.xbel', but failed: Operation not permitted

(Pinta:6670): Gtk-WARNING **: Attempting to set the permissions of `/mnt/utmp/pinta/recently-used.xbel', but failed: Operation not permitted
Marshaling activate signal
Pinta: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentOutOfRangeException: must be greater than 0
Parameter name: numerator
at Pinta.Core.ScaleFactor..ctor (Int32 numerator, Int32 denominator) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.CanvasRenderer.Initialize (Size sourceSize, Size destinationSize) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.OpenImagesListWidget.CreateImagePreview (Pinta.Core.Document doc) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.OpenImagesListWidget.HandleDocumentModified (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at (wrapper delegate-invoke) System.EventHandler`1<Pinta.Core.HistoryItemAddedEventArgs>:invoke_void__this___object_TEventArgs (object,Pinta.Core.HistoryItemAddedEventArgs)
at (wrapper delegate-invoke) System.EventHandler`1<Pinta.Core.HistoryItemAddedEventArgs>:invoke_void__this___object_TEventArgs (object,Pinta.Core.HistoryItemAddedEventArgs)
at Pinta.Core.HistoryManager.OnHistoryItemAdded (Pinta.Core.BaseHistoryItem item) [0x00000] in <filename unknown>:0
at Pinta.Core.DocumentWorkspaceHistory.PushNewItem (Pinta.Core.BaseHistoryItem newItem) [0x00000] in <filename unknown>:0
at Pinta.Core.ImageActions.CropImageToRectangle (Pinta.Core.Document doc, Rectangle rect) [0x00000] in <filename unknown>:0
at Pinta.Core.ImageActions.HandlePintaCoreActionsImageCropToSelectionActivated (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0
at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) [0x00000] in <filename unknown>:0
at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000] in <filename unknown>:0
at GLib.Signal.ClosureInvokedCB (System.Object o, GLib.ClosureInvokedArgs args) [0x00000] in <filename unknown>:0
at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000] in <filename unknown>:0
at GLib.SignalClosure.MarshalCallback (IntPtr raw_closure, IntPtr return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr invocation_hint, IntPtr marshal_data) [0x00000] in <filename unknown>:0
Pinta: System.ArgumentOutOfRangeException: must be greater than 0
Parameter name: numerator
at Pinta.Core.ScaleFactor..ctor (Int32 numerator, Int32 denominator) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.CanvasRenderer.Initialize (Size sourceSize, Size destinationSize) [0x00000] in <filename unknown>:0
at Pinta.Gui.Widgets.PintaCanvas.OnExposeEvent (Gdk.EventExpose e) [0x00000] in <filename unknown>:0
at Gtk.Widget.exposeevent_cb (IntPtr widget, IntPtr evnt) [0x00000] in <filename unknown>:0
[ FAILED]--- Waiting the Union to be available ----------
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
WARNING umount UNION failed, didnt clean up. Process still using this FS :
6398 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -p /media/PANDORA/pandora/menu//monort.pnd -u
6427 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -u -p /media/PANDORA/pandora/menu/monort.pnd -b pinta
6513 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -p /media/PANDORA/pandora/apps//pinta.pnd -e runscript.sh -b pinta --
6598 ? S 0:00 /bin/bash ./runscript.sh
6670 ? Sl 0:29 mono lib/pinta/Pinta.exe
7209 ? S 0:00 sleep 10
+++++++
Loopback devices :
/dev/loop0: [b301]:16 (/media/PANDORA/pandora/apps/wally.pnd)
/dev/loop2: [b301]:33707 (/media/PANDORA/pandora/apps/pinta-ptitseb.pnd)
/dev/loop3: [b301]:33609 (/media/PANDORA/pandora/menu/monort.pnd)
Are mounted on :
/dev/loop0 on /mnt/utmp/wally type squashfs (ro,relatime)
/dev/loop2 on /mnt/utmp/pinta type squashfs (ro,relatime)
/dev/loop3 on /mnt/utmp/monort type squashfs (ro,relatime)
For these Union :
none on /mnt/utmp/wally type aufs (rw,relatime,si=6d3f6065,noplink)
none on /mnt/utmp/pinta type aufs (rw,relatime,si=61682065,noplink)
none on /mnt/utmp/monort type aufs (rw,relatime,si=61683065,noplink)
[SUCCESS]--- uMount the PND ----------
=======================================================================================
Return code is : 5
[ FAILED]--- Waiting the Union to be available ----------
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
umount: /mnt/utmp/pinta: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
WARNING umount UNION failed, didnt clean up. Process still using this FS :
6398 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -p /media/PANDORA/pandora/menu//monort.pnd -u
6427 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -u -p /media/PANDORA/pandora/menu/monort.pnd -b pinta
6513 ? S 0:00 /bin/bash /usr/pandora/scripts/pnd_run.sh -p /media/PANDORA/pandora/apps//pinta.pnd -e runscript.sh -b pinta --
6598 ? S 0:00 /bin/bash ./runscript.sh
6670 ? Sl 0:29 mono lib/pinta/Pinta.exe
+++++++
Loopback devices :
/dev/loop0: [b301]:16 (/media/PANDORA/pandora/apps/wally.pnd)
/dev/loop2: [b301]:33707 (/media/PANDORA/pandora/apps/pinta-ptitseb.pnd)
/dev/loop3: [b301]:33609 (/media/PANDORA/pandora/menu/monort.pnd)
Are mounted on :
/dev/loop0 on /mnt/utmp/wally type squashfs (ro,relatime)
/dev/loop2 on /mnt/utmp/pinta type squashfs (ro,relatime)
/dev/loop3 on /mnt/utmp/monort type squashfs (ro,relatime)
For these Union :
none on /mnt/utmp/wally type aufs (rw,relatime,si=6d3f6065,noplink)
none on /mnt/utmp/pinta type aufs (rw,relatime,si=61682065,noplink)
none on /mnt/utmp/monort type aufs (rw,relatime,si=61683065,noplink)

(Pinta:6670): GLib-CRITICAL **: Source ID 837 was not found when attempting to remove it
unmout monort
[SUCCESS]--- Starting the application ( runscript.sh ) ----------
[ START ]--- Restoring the frame buffer status ----------
[SUCCESS]--- Restoring the frame buffer status ----------
[ START ]--- uMount the PND ----------
[ START ]--- Waiting the Union to be available ----------
[ START ]--- Waiting the Union to be available ----------
 
Last edited:
For reasons unknown to me... during the past two days since ^^that post, I have been using Pinta regularly: Crop has ALWAYS worked fine! Just had ONE crash in all the time and that was after ca. 5 undos and then save, I´m lost :) but no need for any action at all, pttiSeb :)
 
Back
Top