Wednesday, November 12, 2008

Opening files with LightZone from command-line

LightZone is a very useful commercial photo editor with some unique features like non-destructive and layer-based editing. To my mind, the developers has taken a very clever approach to save resulting edits inside of smaller-size JPEG files (thumbnails), so that any program can be used for previewing the resulting image, but opening of the file in LightZone will load the original image and show all the edits again with the possibility to make any changes and export a full-resolution image. The cool thing here is that edited files are very small especially when compared to 10Mb+ source RAW photos, contain all the editing history and can be previewed quickly with any software. And all this runs on Linux (thanks to Java - write once, run almost anywhere).

The only problem with LightZone (at least the Linux version) is that it doesn't accept filenames from the command-line! You have to start the program and select the file manually using the embedded file browser. Of course, this is not an option if you want to run LightZone from another application as an external editor, eg from F-Spot (more on this in a later post).

To make a long story short, I have written a small Java program that takes a filename on the command-line and then modifies LightZone preferences, so when you run it next time it will directly open the specified image.

Here it is:

import java.io.*;
import java.net.*;
import java.util.prefs.*;

/**
* LightZoneOpener - will modify LightZone preferences to open the
* specified file (image) on next startup.
* This is useful to force LightZone to open a particular file from
* the command-line, just run this code before starting LightZone.
*
* @author Anton Keks
*/
public class LightZoneOpener {

public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.err.println("Please specify filename to open in LightZone");
System.exit(1);
}
String filename = args[0];
if (filename.startsWith("file:"))
filename = new URI(filename).getPath();
File file = new File(filename).getCanonicalFile();
if (!file.exists()) {
System.err.println(file + " doesn't exist!");
System.exit(2);
}
File fileDir = file.getParentFile();

// set image folder as current one
Preferences folderPrefs = Preferences.userRoot().node("com/lightcrafts/ui/browser/folders");
int i = 0; File dir = file;
while ((dir = dir.getParentFile()) != null) {
folderPrefs.put("BrowserTreePath" + i++, dir.getName().isEmpty() ? "/" : dir.getName());
}
folderPrefs.remove("BrowserTreePath" + i);

// set selected image in the current folder
Preferences appPrefs = Preferences.userRoot().node("com/lightcrafts/app");
appPrefs.put("BrowserSelectionMemory" + fileDir.getPath().hashCode(), file.getPath());
// tell LightZone that last startup was OK just in case
appPrefs.put("StartupSuccessful", "true");

System.out.println("LightZone is now ready to open " + file + " on next start");
}
}

Here is what to do:
  1. save it to LightZoneOpener.java
  2. compile with javac LightZoneOpener.java
  3. run with java LightZoneOpener

Then you can create a small script that will automate the stuff for you (save it to ~/bin/LightZone):
#!/bin/bash
java -cp ~/bin LightZoneOpener "$@"
~/LightZone/LightZone

This assumes that you have extracted LightZone to ~/LightZone (in your home dir) and have the following two files in the ~/bin dir: the compiled LightZoneOpener.class and the script file LightZone (don't forget to set the execute permission with chmod a+x ~/bin/LightZone)

Here is all this pre-compiled. Just extract the file directly in your home and it will put all needed files into the bin directory. After next login your local bin will be in $PATH, so you will be able to use it.

Now you can run LightZone filename on the command-line in Linux (or using Alt+F2)! Have fun!


32 comments:

Anonymous said...

Музыканты [url=http://dejavu-group.ru/index.php]Deja Vu[/url] - это коллектив виртуозных вокалистов и музыкантов.
[url=http://dejavu-group.ru/artist.php]Dejavu-group[/url]- законодатель в области музыкального оформления свадеб, дней рождения, корпоративных вечеров, шоу программ.
В репертуаре ВИА Dejavu-group около 3000 песен.
Живой звук. Ретро, хиты 70-80-90-х, джаз, диско, поп, современная музыка, европейские хиты, фоновая музыка, шансон.
Музыкальный ансамбль Deja Vu обладает мощной качественной музыкальной аппаратурой, которая позволяет наполнить приятным и плотным уху звуком как небольшое помещение (фуршет), так и большое помещение (корпоратив до 1 тыс. человек).

Андрей +7 910 483 8294

Anonymous said...

[url=http://vgashop.net]Так думал[/url] [url=http://jmarket.info]молодой повеса[/url] [url=http://allmet.org]Летя в пыли[/url] [url=http://tvparty.biz]на почтовых[/url] [url=http://otzv.net]Всевышней волею Зевеса[/url] [url=http://vybory2012.com]Наследник всех[/url] [url=http://avto-shop.biz]своих родных[/url]

Anonymous said...

Музыкальная группа [url=http://dejavu-group.ru/artist.php]Deja Vu[/url] - это коллектив дипломированных вокалистов и музыкантов на праздник.
[url=http://dejavu-group.ru/about_us.php]Dejavu-group[/url]- законодатель в области музыкального оформления музыкальных мероприятий, свадеб, юбилеев.
В репертуаре музыкального ансамбля Дежа вю около 3 тыс. произведений.
Только живое исполнение. Диско, хиты 70-80-90-х, джаз, ретро, шансон, современная музыка, европейские хиты, фоновая музыка, поп .
Музыканты на праздник Dejavu-group располагает мощной качественной музыкальной аппаратурой, позволяющей заполнить приятным уху звуком как маленькое помещение (фуршет), так и огромное пространство (корпоратив до 1000 человек).

Андрей +7 910 483 8294, Игорь +7 916 623 4047

Anonymous said...

После вселенской катастрофы Америка превратилась в выжженную пустыню. По дорогам которым нет конца, кишащим бандами, с враждой поражденной войной за воду и еду, путешествует умный Илай. Однажды он попадает в мрачные края, где когда-то находился прекрасный штат Калифорния, а теперь это сущий ад, где бесчинствует тиран Карнеги.
трейлер к фильму книга илая

Anonymous said...

Если кому интересно, лучший способ обезопасить кого-нибудь от навязчивых мобилок - использовать Подавитель мобильной связи

Anonymous said...

Как жизнь? мм.. есть cупер мысль по[url=http://www.pi7.ru] видео[/url] порталу Думаю вам понравится

[url=http://www.pi7.ru]зоофилия девушка и жеребец пони [/url]
aнекдот для разнообразия :)

Трахаются двое в автомобиле. Подходит ГАИшник. Смотрит - едвочка что надо. . .
- О, мужик, я следущюий!
- Ладно, - усмехается тот, - авно я ментов не #бал. . .

Я 8 часов блуюдала оп сети, пока нее вшела на ваш фроум! Дума, я здесь останусь андог!о
прошу прощения за опечатки.... очень маленьькая клавиатура у PDA!

Anonymous said...

Иногда надо изменять, чтобы понять, что не надо… http://cans.ru/

Anonymous said...

Ну что вы тут раскричались? Пора успокоится и советую скачать Алису в стране чудес. Думаю просмотр успокоит немного нервишки;)

Anonymous said...

Подумали с мужем о презентах на день рождения младшему сыну, ему четыре года, всевозможные-роботы-конструкторы у него уже есть много, он любитмышку Тич. Я нашла типа подобной игрушки, только мишку -говорящий мишка Куби, кто покупал такого? Есть смысл покупать? Или посоветуйте что-либо аналогичное. Не дайте ребенку остаться без подарка от папы с мамы с папой.

Anonymous said...

Мульти портал. Есть все, почти всё. Немного из навигации сайта.

[url=http://pi7.ru/]Здоровье (мини форум)[/url]
--------------------------------------- |
Анекдотик, не помешает... :)
[url=http://pi7.ru]Студентка[/url] делится впечатлением с подругой о летней практике:
- А ночевали мы на сеновале. Однажды началась гроза, и крыша рухнула. . .
- И тебя не придавило?
- Нет, все Лёше на спину упало

блуждала по сети , [URL=http://pi7.ru][IMG]http://pi7.ru/pleer.gif[/IMG][/URL]

Anonymous said...

Кино http://www.film-book.ru

Anonymous said...

Хорошая статья. Действительно было интересно почитать. Не часто такое и встречается та.Наверное стоит подписаться на ваше RSS

Anonymous said...

Действительно интересно. Побольше бы таких статей.

Anonymous said...

Очень интересная статья. Скажите, а могу ли я ее повесить на один из своих сайтов? Соотвественно с гиперсылкой на вас.

Anonymous said...

Привет, прикольный блог, буду читать

Anonymous said...

Я бы на эту тему написал гораздо меньше. Я по другим темам в основном шарю.

Anonymous said...

Poimajotflili
[url=http://www.ekccc.org]buy adipex online no prescription[/url]
Nadafuele
[url=http://noweatthis.net]ambien buy online with prescription[/url]
Fizalefeera
[url=http://www.thegibsoncompany.com]mexican lorazepam[/url]
expemybrootte

Anonymous said...

I enjoyed reading your blog. Keep it that way.

Anonymous said...

usc shelter
price of hotels
fete abode conformation
afton booking
bay motel
cost hotel
budget-priced hostel
munnar new zealand pub booking
housing stimulus
hotel prices uk
most desirable deals on hotels
la quinta hotels
south seashore hotels cheese-paring
tiffany price hotel
uci protection
hotels discounts
staffordshire dwelling
hotel galbis
hotels skinflinty rates
lodgings programs
economici
cheap san francisco hotels
amenities hotels
hud housing
influential hotels

Anonymous said...

Отличная статья! большое спасибо автору за интересный материал. Удачи в развитии!!!
http://www.miriadafilms.ru/
blog.azib.net

Anonymous said...

Почему регистрация не работает ?

Anonymous said...

Спасибо, очень интересная заметка.

Anonymous said...

Тема ваша довольно сложная для новичка.

Anonymous said...

Захватывающе

Anonymous said...

привет, Замечательно, очень забавная фраза

Anonymous said...

сижу и думаю стоит мириться или же нет. и в случае в случае если да, то как.|Планирую беременность, но прописки нет в Москве. Хочу платно, недорого, провериться на все инфекции и сдать кровь, не знаю куда пойти - везде где только можно большое колличество клиник, квд, центров, и цены конские просто...Кто знает неплохие недорогие поликлиники ближе к центру?|Прошу помощи. Предстоит аборт..он у меня первый, беременности никогда не было! Мне 22. Аборт буду делать на сроке 1,5 месяца. Очень страшно, тк никаких операций в жизни у меня не было и наркоза боюсь..Бывают так как смертельные случаи.

[IMG]http://2nt.ru/images/logoicon2.png[/IMG]
[IMG]http://v7em.com/go/head.gif[/IMG]

Anonymous said...

Всем привет, Очень забавная информация

Anonymous said...


I was able to find good info from your blog articles.

Anonymous said...

[url=http://buycialispremiumpharmacy.com/#qkjof]buy cialis online[/url] - generic cialis , http://buycialispremiumpharmacy.com/#qudho buy cialis online

Anonymous said...

[url=http://buyviagrapremiumpharmacy.com/#kbewy]buy viagra online[/url] - buy cheap viagra , http://buyviagrapremiumpharmacy.com/#oyiaj buy viagra online

Anonymous said...

[url=http://buyonlineaccutaneone.com/#rvicg]buy accutane online[/url] - accutane online , http://buyonlineaccutaneone.com/#fhdxg accutane online without prescription

Anonymous said...

Hello There. Ι fοund your blog using msn.
Τhis is аn extrеmely ωell written aгtіcle.

I'll be sure to bookmark it and return to read more of your useful information. Thanks for the post. I will definitely return.

Look into my web page - payday loans