Using OpenType features with ImageMagick or GraphicsMagick - unicode

Does anyone know if it's possible to use OpenType features in ImageMagick or GraphicsMagick? Specifically, I'm looking to use glyphs that are not assigned to Unicode points (glyphs are sometimes placed outside of the Unicode range, since they are intended to act as embellishments to other characters). In OpenType-aware desktop applications, you would usually need to open a glyph table and select the glyph manually; I'm not sure how you would do this using ImageMagick.

I'm afraid, such advanced (and also: somehow obscure) OTF features are NOT (yet) supported by ImageMagick -- at least there's nothing in the available documentation (I don't know about GraphicsMagick).
But your best option to get a definitive, authoritative answer from the developers themselves is: register here and ask again on the official ImageMagick Users list.

Related

Unicode symbols and OS/browser font support

There are so many wonderful unicode symbols. This is amazing.
But they are all useless if I can't know if my user's font support them.
How can I find that out?
Can I track whether a user's font support a unicode symbol?
Any ways to have some kind of fallback? (If this unicode symbol isn't supported then show this other unicode symbol.)
Are there any OS/browser support references out there? (I've already extensively searched for such reference without any luck so far.)
What's your strategy to decide whether to use a unicode symbol?
I would love to use more of these lovely unicode symbols.
===Edit===
For example: I want to use the unicode "U+2605 ★ BLACK STAR" in my project's readme.md on GitHub. How can I know whether this unicode symbol will correctly be displayed?
If only someone would run this test to on all OS/browser and provide a compatibility table, that would be so awesome..
Modern browsers can display pretty much any character as long as the user has a font installed that includes it. So your question comes down to:
Which fonts are bundled with every major OS, and which characters do those fonts support?
Well, I have created a tool that presents exactly that information.
This may have been overkill, since it is pretty easy to just #font-face include FontAwesome, IonIcons, or a similar font or symbol set that you know includes your desired characters. You could even download and include individual SVGs if you're only talking about a couple of symbols.
But if you want to save yourself an external dependency and network request while also benefiting from the easy CSS styling of plain text, this is your solution!
If it turns out you want to use a character that is not widely supported, I include the name of which free Google Noto font you can <link> or #font-face embed. There's also a browser to look through whole Unicode blocks at a time.
Anyway, take a look at Unicompat.com and see if it is what you're looking for. It's very much in beta, so apologies if anything is creaky.
https://www.fileformat.info/info/unicode/font/index.htm
To determine whether a user's font supports a specific unicode symbol, you can check if it is part of the font's character set.
For fallback, you can use a different unicode symbol that is likely to be supported by most fonts, or specify a fallback font that has wider support for unicode symbols.
There is no one-size-fits-all reference for unicode support across all operating systems and browsers, as it depends on the specific font being used. However, you can check if a unicode symbol is part of the Unicode Standard, which provides a comprehensive list of defined characters and their encoding.
Personally i like this website for check http://www.alanwood.net/unicode/cjk_compatibility.html

Open type font issue

Basically,this is a problem of displaying a minority language.
Let me make it brief:
I've been trying to make my Opentype font(which has some features in it) work properly on non-windows(on windows, it works fine) platforms(Android ,iOS etc.).
What I'm truly dealing with is a problem as complicated as displaying Arabic language(including glyph substitution,shaping etc.).
I simply want to display the characters properly in my own software,because system wide support may be even more complicated for me to achieve.
I checked out ICU, Pango, Harfbuzz... and finally decided to work on Pango. See Pango ScriptGallery.
So,here's the questions:
1.Can I use pango as a supportive module in my project to display that language? I tried to install Pango on ubuntu,came with no success.I'm pretty confused now because Pango is related to harfbuzz,cairo,freetype,fontconfig blabla when installing.
2.If can't, is there any other light-weight ways to achieve that ?
Any help will be appreciated .
Which programming language do you use or you should use?
As you question tags, you may have a look at this (the second code), just do a sudo apt-get install python-gtk2 for it, ref
A lightweight solution would be using HarfBuzz directly.

If I include the unicode "eject" symbol in my web app UI, what are the compatibility risks?

In short, how advanced is unicode support in browsers and operating systems?
Unicode support is, in general, rather widespread. The main problem here is probably that most fonts don’t contain the EJECT SYMBOL character. According to the font support page at fileformat.info, the character exists only in a small set of fonts, none of which is probably shipped with an operating system or other commonly used software. So the user would need find, download, and install a font that contains the character, unless you use font embedding.

How can I enhance the look of the Perl/TK GUI under Perl 5.004?

I have an application that is built to work on Windows, Linux, and Solaris that uses the Perl/TK GUI. Due to constraints, we are limited to Perl/TK only. Moreover, we are limited to an old Perl/Tk version, 5.00404.
I'd like to work within these limitations to make the GUI look as nice and modern as possible.
Are there any web-resources that have TK design schemes (for buttons, frames, colors, etc) that could assist me in this endeavor?
I am also looking for modernization advices like the one that I found here:
If you're finding that your Tk apps look a little ugly on X-based systems, try adding the following lines to the top of your script:
$mw->optionAdd("*font", "-*-arial-normal-r-*-*-*-120-*-*-*-*-*-*");
$mw->optionAdd("*borderWidth", 1);
Try using images instead of button elements, then you can have whatever style you like and the fonts can be baked in. This will work for pretty much any element where the contents are not dynamic - including backgrounds on panes and such. Granted it's more work but it does solve your problem, especially if you have a competent artist in your project group.
You could use the Tk theme engine to give your app better looks.
Using optionAdd to tweak defaults through the option database
is a reasonable start. A thread about this can be found at:
http://tcl.projectforum.com/tk/221
Download griffin.kit from there, use the sdx tool to unwrap it and locate
griffin.tcl to get a good set of option settings.
http://wiki.tcl.tk/3411 for the sdx tool.
Since in Linux the background of Tk::Entry and Tk::Text is grey i would also use the following two lines.
$mw->optionAdd( '*Entry.background', 'snow1' );
$mw->optionAdd( '*Text.background', 'snow1' );
Replace 'snow1' with a color of your choice. You can also use the hex representation(RGB) of the colors like '#ff9696'.
The Tile themeable engine for Tk makes it look much prettier. However, Perl/Tk has lagged far behind Tk's development, and can't take advantage of Tile and other advancements.
You should investigate whether Tkx is an option for you. It's not completely compatible with Perl/Tk, but the API is pretty close. It's a bridge between Perl and Tcl/Tk, so it can use all of the modern Tcl/Tk features (like Tile) while still having application logic coded in Perl. Quite a few of ActiveState's own graphical utilities use Tkx, with fairly good-looking results.
(source: activestate.com)
Perl 5.00404 is incredibly ancient, though. The Tkx dist claims to depend on Perl≥5.008... I don't have an old enough Perl to see how accurate that is.

What is the best/a very good meta-data reader library?

Right now, I'm particularly interested in reading the data from MP3 files (ID3 tags?), but the more it can do (eg EXIF from images?) the better without compromising the ID3 tag reading abilities.
I'm interested in making a script that goes through my media (right now, my music files) and makes sure the file name and directory path correspond to the file's metadata and then create a log of mismatched files so I can check to see which is accurate and make the proper changes. I'm thinking Ruby or Python (see a related question specifically for Python) would be best for this, but I'm open to using any language really (and would actually probably prefer an application language like C, C++, Java, C# in case this project goes off).
There is a great post on using PowerShell and TagLibSharp on Joel "Jaykul" Bennet's site. You could use TagLibSharp to read the metatdata with any .NET based language, but PowerShell is quite appropriate for what you are trying to do.
use exiftool (it supports ID3 too). written in perl, but can also be used from the command line. it has a compiled windows and mac version.
it is light-years ahead of any other metadata tool, supporting almost all known audio, video and image files, supports writing (not just reading), and knows about all the custom/extended tags used by software (such as photoshop) and hardware (many camera manufacturers).
#Thomas Owens PowerShell is now part of the Common Engineering Criteria (as of Microsoft's 2009 Product Line) and starting with Serve 2008 is included as a feature. It stands as much of a chance to be installed as Python or Ruby. You also mentioned that you were willing to go to C#, which could use TagLibSharp. Or you could use IronPython...
#Thomas Owens TagLibSharp is a nice library to use. I always lean to PowerShell first, one to promote the language, and two because it is spreading fast in the Microsoft domain. I have nothing against using other languages, I just lean towards what I know and like. :) Good luck with your project.
Further to Anon's answer - exiftool is very powerful and supports a huge range of file types, not just images, but video, audio and numerous document formats.
A Ruby interface for exiftool is available in the form of the mini_exiftool gem
see http://miniexiftool.rubyforge.org/