I want to make a program that displays an image with other images on it (a map with various icons on it). What language (and library!) would you recommend, based on these facts:
-I have some basic oop knowledge
-I'll need a free and windows OS IDE for that
I would guess java? But it is not easy to compress my question to a good quality google search string....
displays an image with other images on it
Almost every language can achieve this. Such as Python with Pillow C++ with opencv and many other options. (I believe most of mainstream languages will have their own image library)
The problem is, what you want to implement specifically?
if you just want to put some images on to another image, and you do not need extra interactive function. Go with Python and Pillow, it is easy to learn and can perfectly solve your problems.
Related
I would like to write a small program, or script, to extract a set of pictures from a pdf.
I have several PDFs, they each have a table of pictures. I would link to have one picture per file. Therefore I need a way to extract them. Due to the nature of the PDF (A table/grid), it seems that it would be much easier to write a program, than do some manual method. However I have no idea what tools are available.
What libraries are available?
Preference Python, then C# or Java, then maybe some other language (My C and C++ is rusty, I have not done them for years).
I am on Debian Gnu/Linux, so have a wide choice of tools.
I went with pdfbox (an Apache project, so Free Software) it is a java library and a command line tool (the app module). I then scripted it with a bit of python to process the extracted text (yes it did that as well), and rename the image files.
I am only starting out to learn programming, currently on Python 3.2, and was looking to build a few simple applications and possibly website(s), also simple. I want to know a good GUI library to start that:
is simple with good control (not a major issue, I'm planning to advance as much as possible anyway);
is cross-platform, with a native feel;
has good tutorials somewhere (please post link);
I can use to sell applications/make profit from websites with little to no licensing issues (a must);
can use Chinese characters as strings (not a must, but would definitely be a game changer).
Thanks a lot!
There are two main options for cross platform GUIs in Python 3:
Tkinter is simple and ships with Python, but applications can look a bit ugly. I like this site for learning it, although it's a bit old.
Qt is bigger and more complex, but produces powerful, good looking applications. If you want to make proprietary software with it, you'll need to use PySide, rather than PyQt, but how you use them is almost identical. There are plenty of tutorials online (mainly for PyQt, which has been around longer, but they're fine if you're using PySide).
Both should handle any characters, including Mandarin, so long as the system has fonts with those characters to display them.
Most of the tutorials for both will be based on Python 2, so you'll have to make a few changes. print "foo" becomes print("foo"), and Tkinter becomes tkinter, for example.
Are there any good tools or libraries that do image effects similar to Photo Booth on OS X? It doesn't have to be live, just applying the effect to an image would be enough. As a bonus: python bindings preferred.
What about image magick ?
It does a lot of effect, is Python compliant and can do way more than what you aim at.
You can use it in console or through the api.
Example of effects (sepia included)
With it, you can distort, blur, watermark, . . . whatever you want :)
It supports a lot of languages, and there is even a port to android on github
Like OpenCV
I hope the library can do several simple image edit operation, like DrawLine(UiImage, startPoint, endPoint), or ConvertToGray(UiImage)
CoreImage is the built-in image manipulation library in Cocoa.
For example: What is the best Core Image filter to produce black and white effects?
I'd suggest using OpenCV , which is a great algorithms and image processing library.
Choosing Opencv would give you more future option.
Try this
OpenCV is not meant for image editing. You can do that, but it's like buying a big track to carry your groceries from the market.
The best way to do it is to look into some already integrated image editing libraries. And as I know, in Cocoa there are several of them. CoreImage, mentioned by Dor, is one of them.
And there are some specialized image editing / UI toolkits that may help you better than OpenCV. You may check whether ImageMagik or QT are available for Mac/iOS
I'm using Emacs, with CLISP and Slime, and want to be able to draw pictures on the screen. I'm specifically thinking about drawing graphs, but anything that would let me draw basic shapes and manipulate them would be able to get me started.
Doug is right; CAPI will work fine. Other things you can try:
cltk: http://www.cliki.net/Lisp-Tk
I know that Allegro has something for Windows programming also, but I've never tried it.
What may also work is cells-gtk: http://common-lisp.net/project/cells-gtk/
Again, I can only tell you that it exists but not how bad it is or if it even really works...
I can not comment also on the quality of
http://www.cliki.net/GTK%20binding
But that's mostly what is available.
Corman Lisp probably has something to offer for Windows programming also.
Anyway, the choices on Windows are relatively slim. The you can probably have the most confidence in CAPI, which is used for the LispWorks IDE on Windows, Linux, MacOS X and on quite few big unices also...
Regards
I think I've found my own answer. Clojure seems to have everything I was looking for, just because I can now use all of the Java GUI items natively in LISP. It is a different dialect of LISP than the Common-Lisp I was using, but seems to have a lot of community support, and integrates with my Windows installation of Emacs either through SLIME or through the Inferior-Lisp interpreter. So far I've been very impressed.
Oh, a code sample:
(. javax.swing.JOptionPane (showMessageDialog nil "Hello World"))
Any guesses what this does? :)
Bill Clementson's blog has quite a bit on Clojure, including a lot of helpful posts on installing it. See here: his posts on Clojure
You could switch from CLISP to the free LispWorks Personal Edition and use the CAPI Graphics Ports drawing API.
Or you could use Lisp's Foreign Function Interface and use one of the graphics toolkits available for your OS.
For rolling your own (like you said, basic shapes) try Lispbuilder-SDL or one of the cl-cairo FFIs (it's just my guess that the latter work with MS Windows, though).
I know this is an old post, but so the information is here for others like me who find this thread looking for the same thing.
This library for tk bindings in common lisp seems to work fairly well.
http://www.peter-herth.de/ltk/
Clojure is an excellent Lisp, and Swing is a solid (if not particularly visually exciting) windowing toolkit. If you want do do more advanced graphics and/or dabble with game programming you might want to check out Slick, which is a general purpose graphics/game library that sits on top of Swing and gives you access to OpenGL and lots of other stuff.
I've found the Clojure/Slick combination an excellent way to do exploratory graphics programming, as you can interact with the graphics window directly from the REPL.
There's cl-cairo2 - a binding to Cairo vector drawing library. It can be used to draw various pictures on various surfaces. There's a cl-2d library that uses cl-cairo2 to draw charts.
And there's cl-gtk2 - a binding to Gtk+ library. You can create widgets that are drawn with cl-cairo2 (or cl-2d) that draw what you want.
CLISP users might find The following useful for their graphics applications:
cl-vectors is a pure Common Lisp
library to create, transform and
render anti-aliased vectorial paths.
It can be installed using
ASDF-Install.
http://projects.tuxee.net/cl-vectors/
Vecto is a simplified interface to the
powerful CL-VECTORS vector
rasterization library....the results
can be saved to a PNG ... Since Vecto
and all supporting libraries are
written completely in Common Lisp,
without depending on external non-Lisp
libraries, it should work in any
Common Lisp environment. Vecto is
available under a BSD-like license.
The current version is 1.4.3, released
on August 26, 2009.
http://www.xach.com/lisp/vecto/