DOC PREVIEW
Columbia COMS W4115 - TMIL - Text Manipulation Imaging Language

This preview shows page 1 out of 3 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

COMS W4115 : Programming Languages and TranslatorsTMIL : Text Manipulation Imaging LanguageProject ProposalEli Hamburger ([email protected])Michele Merler ([email protected])Jimmy Wei ([email protected])Lin Yang ([email protected])September 24, 20071 IntroductionTMIL (pronounced TEE-mil), short for Text Manipulation Imaging Language, is a revolutionaryhigh level programming language that allows users to manipulate text programatically on an image.Users of the language can generate small programs that can do sophisticated text manipulationson images, without having to resort to complicated graphics libraries or painting programs such asAdobe Photoshop. Text manipulation has a wide range of applications, specifically geared towardsweb development. Some interesting scenarios include:• Allowing a user of a Content Management System to display text to website users in fontsthat users don’t have on their computer• Allowing a web site template designer to create template that are easily adaptable• Allowing users to interactively label specific regions of an image.• Generating CAPTCHAs, an image based challenge-response tests used on many web siteregistration forms.• Manipulating text on multiple images to create an animation.There are image processing libraries available that can manipulate text, but they are very difficultand cumbersome to use. TMIL was designed from the ground up to have a clean and simple syntaxso that users can do repetitive and complicated imaging tasks quickly and efficiently.12 Motivation and FeaturesOur primary motivation for creating TMIL is to create a specific purpose language that is easyenough to enable developers of all backgrounds to use, while remaining powerful enough to drawexactly what the programmer wants. The Java Paint2D and the GD2 library for C++ are bothpowerful, but require a lot of effort for even the simplest projects. Other command based imageediting application such as ImageMagick require fine tinkering of command line arguments in un-understandable order. While the simple MSPaint and expansive Adobe Photoshop offer similar texton image capabilities, they require user interaction. The TMIL Language offers the developer a wayto automatic adding text to images in a construct that feels natural.The specificity of the language also brings with it security. Administrators can give free compilationand execution rights for TMIL code and applications knowing the user is limited in his power. Theuser is constraint to editing images and has no access to other parts of the system through TMILcode.TMIL uses standard and recognizable constructs such as if statements and while loops. The languagealso supports native objects such as integers and strings as well as standard functions that arenormally available for such objects. The simple tools give a programmer a lot of manipulationability.TMIL code flow is intuitive, allowing developers to lay down text in the code the same way theywould think about doing it interactively. The user sets the properties of the text such as font,font-size, color etc he/she wishes to set on the image, and stamps it on. The location of thetext and even whether or not to rotate the text are all properties of the text object and can bechanged anytime until the text is stamped. This allows the programmer to do what he/she feelsmost natural.TMIL is flexible. The user can create one text object and stamp it onto many images, or stampmany text objects sequentially onto a single image. Obviously, he/she can do a combination ofboth.3 Example of SyntaxThe simple code example described here loads an image and writes text on it at different positionsand with different colors. Many other attributes, such as rotation, size, and font can be manipulated,but are not shown in these examples. Arrays of types are also supported.int i = 0;image im = open("namefile.png"); // load imagetext t;t::string = "dog"; // assigns value "dog" to property string of t2t::font = "arial"; // assigns arial font to tt::size = 18; // assigns a size to tcolor c = [0, 0, 0];for (i=0:2) {c[i] = 255;t::color = c; // assigns value c to the color property of tt::position = [i*10,i+20]; // assigns a value to the position of tim <-- t; // stamps t to the image im}save(im, "namefile.png"); // saves the resultInput and output of this sample code are presented in Figure 1 (a) and (b).(a) (b)Figure 1: (a) Input and (b) output of the sample code


View Full Document

Columbia COMS W4115 - TMIL - Text Manipulation Imaging Language

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download TMIL - Text Manipulation Imaging Language
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view TMIL - Text Manipulation Imaging Language and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view TMIL - Text Manipulation Imaging Language 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?