Sunday, December 29, 2013

Write and display Batak script on Mac


Batak font used to be just another ASCII font with Batak script rendering. But it got place in Unicode and it is a "real" font now. Download it from Uli Kozok's site.

After you installed the font, you will be able to see this in Batak script: ᯂᯬᯒᯀ᯲
You will also see Batak script on sites like this: http://www.alanwood.net/unicode/batak.html

Now that it is a real font, typing on ASCII keyboard won't work anymore. A special keyboard mapping is necessary. For Mac, get the keyboard mapping from this Michael Everson's site.

Installing a Batak keyboard layout on the Mac OS:

1) Download the Mac OS Batak keyboard layout package. (The files are inside the folder “Batak-Mac-Keylayout”, which is compressed in .zip format.)
2) Install the keyboard layout by dragging it (the .keylayout and the .icns files, not their enclosing folder) to ~/Library/Keyboard Layouts.
3) To use a keyboard layout, activate it at System Preferences > International > Input Menu.


Saturday, April 13, 2013

Using exiftool to rename pictures from digital camera

Lots of pictures taken with digital camera (including the ones in smartphones)... so I need a way to at least easily identify when a particular picture is taken, and exiftool comes in handy.

First, create a file named .ExifTool_config at user's root directory containing something like the following:


%Image::ExifTool::UserDefined = (
    'Image::ExifTool::Composite' => {
        MyModel => {
            Require => 'Model',
            # translate spaces to underscores
            ValueConv => '$val =~ s/Canon DIGITAL IXUS v2/IXUSV2/; $val =~ s/KODAK DX4330 DIGITAL CAMERA/DX4330/; $val =~ s/C860L,D360L/C860L/; $val =~ s/Canon IXY DIGITAL 320/IXY320/; $val =~ s/ |-//; $val =~ s/(.*)/uc($1)/e; $val',
        },
        MyMake => {
            Require => 'Make',
            # translate spaces to underscores
            ValueConv => '$val =~ s/EASTMAN KODAK COMPANY/KODAK/; $val =~ s/OLYMPUS OPTICAL CO.,LTD/OLYMPUS/; $val =~ s/CASIO COMPUTER CO.,LTD/CASIO/; $val =~ s/ |-//; $val =~ s/(.*)/uc($1)/e; $val',
},

    },
);
1;  #end

Then run the following command:


exiftool -d %Y%m%d-%H%M%S '-FileName<${CreateDate}-${mymake}${mymodel}.%e'

File names of images files on will become like the following:

20040228-133116-CASIOEXS20.jpg

Use "c" to add counter, like below:

exiftool '-FileName<${DateTimeOriginal}_$Model.%e' -d %Y-%m-%d_%H-%M-%S%%-.c 

Rerences:
http://www.sno.phy.queensu.ca/~phil/exiftool/
http://www.sno.phy.queensu.ca/~phil/exiftool/faq.html#Q11


Monday, February 18, 2013

Metadata for image file

How many standards are there for embedding metadata into image files?

We usually hear Exif, IPTC and XMP, but when we mean standards related to metadata, it turns out to be more complex. There are Exif, DCF, IPTC-IIM, XMP (a.k.a IPTC Core), and FlashPix. Some standards are not just about metadata, but also among others how to save image files on digital camera.

Here are some standards that I found out so far:
Exif 1 (standardized by JEIDA)
Exif 2 (standardized by JEITA in 1997) *JEIDA changed name to JEITA
Exif 2.1 (standardized by JEITA in 1998)

DCF JEITA in 1999) *This is Exif 2.1+CIFF

Exif 2.2 (standardized by JEITA in 2002)
Exif 2.3 (standardized by JEITA+CIPA in 2010)
FlashPix
IPTC-IIM (standardized by IPTC in 1994) *descriptive metadata only, for JPEG only, largely superseded by XMP

XMP  any file 2001 (standardized by Adobe in 2001) *a.k.a. IPTC Core

Links to standards:
IPTC (Information Interchange Model (IIM))
http://en.wikipedia.org/wiki/IPTC_Information_Interchange_Model
XMP
http://en.wikipedia.org/wiki/Extensible_Metadata_Platform
Exif
http://en.wikipedia.org/wiki/Exchangeable_image_file_format
Design rule for Camera File system
http://en.wikipedia.org/wiki/Design_rule_for_Camera_File_system

References:
http://en.wikipedia.org/wiki/Exchangeable_image_file_format#FlashPix_extensions
http://gcoupe.wordpress.com/2011/12/10/picasa-versus-windows-live-photo-gallery/
http://www.controlledvocabulary.com/blog/top-metadata-myths.html