Többen jeleztétek, hogy a Zip-eket nem tudjátok kezelni (az állományok jók, teszteltem!). Linuxon lett tömörítve, használd a 7zip (7zip.org) nevű programot hozzá.

Parancssoros képmanipuláció Linuxon

Vissza a taglistához: /tag/PHP nyomtatóra küldöm a Képmanipuláció parancssorban nevű oldalt A felvétel ideje: 2008-05-05 07:32:28 Az utolsó módosítás ideje: 2008-05-05 09:24:33 Találatok Cimkére: 5268; Oldalra: 3689
Rengeteg szoftver áll a rendelkezésünkre Linuxon a képeink rendezésére, ráadásul a képmanipulációs igényüket is kiszolgálják a legtöbb esetben. De az ImageMagick (Convert, Montage, Animate, Interfaces, Composite, Mogrify, Conjure, Compare, Import, Identify, Display, Stream) és néhány erre épülő parancssori eszközt meg kell említeni, mivel sok alkalmazás alapjait képezik. A gyakorlatban egy ilyen eszközkészlettel akár egy saját rajzoló program készíthetünk Online vagy Asztali kivitelben. Az alkalmazástól egy Light UI választ el bennünket :-).

  • F-Spot Fotókezelő
  • Gthumb képmegjelenítő
  • ImgSeek
  • Gimp

De jó ha tudjuk, hogy egyszerűen, parancssorból a Convert (ImageMagick) binárisok segítségével mi magunk is tudunk akár hasonló szoftvert gyártani, vagy képeinket manipulálni. A leírtakhoz szükség lesz az ImageMagick telepítésére: apt-get install imagemagick;

Kép átméretezés
A képek új méretét megadatjuk %-os formában vagy pixelben is. A -resize vagy -scale után adjuk meg a kép új méretét szélleség x magasság formátumban. (pl.: 200x150 pixel vagy 10%x15%). A következő paraméter az Input fájl majd az kimeneti fájl neve.

  • convert [-paraméterek] [input fájl] <output fájl>
  • convert -resize 10%x15% gyor.jpg szazalek_10x15_gyor.jpg
  • convert -resize 200x150 gyor.jpg pixel_200x150_gyor.jpg
xjun080505083604.jpg


Kimenet tömörítésének beállítása:
Az előzményekben leírt paraméterek maradnak de kiegészítjük a -quality érték [0-100] párossal. Az új kép az értéknek megfelelően lesz tömörítve. Tapasztalat alapján a 75 alatti értékek már jól látható változásokat okoznak, ezért inkább nagyobb számokat használjunk.

  • convert -resize 200x150 -quality 20 gyor.jpg pixel_200x150_gyor.jpg
  • JPEG/MIFF/PNG fájloknál

Kép formátum konvertálás
A művelet elvégzéséhez az Input fájl nevét és az kimeneti fájl nevét kell megadni. A kiterjesztések alapján a megfelelő formátumba kerül a végeredmény.

  • convert gyor.jpg gyor.png

Kép forgatása
A kép elforgatásához a fogatás fokát kell megadnunk (-rotate 90).

  • convert -rotate 90 gyor.jpg forgatas_90_gyor.jpg
  • convert -rotate -90 gyor.jpg forgatas-90_gyor.jpg
d47u080505083536.jpg


Kép effektek:
A convert segítségével akár effekteket is készíthetünk képünkből. Ezek a műveletek jóval lassaban hajtódnak végre. Valahol ez az a pont mikor elfelejthetjük a saját grafikus alkalmazás fejlesztését. A műveletek némelyike komoly erőforrásokat igényel.

  • convert -sketch 10 gyor.jpg sketch_gyor.jpg
  • convert -sketch 30 gyor.jpg sketch_30_gyor.jpg
  • convert -solarize 20 gyor.jpg solarize_gyor.jpg
  • convert -swirl 45 gyor.jpg swirl_gyor.jpg &
  • convert -wave 100x300 gyor.jpg wave_gyor.jpg
9hvm080505083720.jpg

Szöveg elhelyezése a fotón
Vízjelet is rakhatunk a képre, sőt az Exif információkat is manipulálhatjuk, törölhetjük. Ha nem adunk meg font paramétereket akkor az alapértelmezett színekkel, betűkészlettel és mérettel fog megjelenni a szöveg.
  • convert -draw 'text 50,50 "Lorem ipsum Dolor Ament"' gyor.jpg text_gyor.jpg
    -draw paraméter text 50,50 a kíírás kezdő kordinátája.

  • convert -fill red -pointsize 40 -draw 'text 20,30 "Lorem ipsum Dolor Ament"' gyor.jpg text40_gyor.jpg
    -fill red a festés színe
    -pointsize 40 a betű képpontjainak mérete

x13m080505083854.jpg



Képinformációk kinyerés
Egy fotó rengeteg olyan információt hordoz (EXIF adatokat), amiket megjeleníthetünk vagy akár törölhetünk is. Az EXIF adatokat magunk is módosíthatjuk, vagy méret csökkentés céljából akár törölhetjük is. Elhelyezhetünk képekben szerzőre vonatkozó információkat, de extrém esetben akár titkosított állományt is (ez utóbbit nem ismertetném :-).

Néhány infó mit tartalmazhat egy kép:
  • Fényképezőgép típus
  • Fényképezési beállítások
  • Formátum
  • Méret
  • Minőség, tömörítési arány
  • Színmélység
  • Milyen szoftverrel pofozgatták
  • stb..

Megjelenítése: identify [képnév.ext]
A visszatérési értékek akár egyenként is ki lehet nyerni a formátum megadásával. (-format).

  • identify gyor.jpg
    alap információkat szolgáltat
    JPEG 600x610 600x610+0+0 DirectClass 8-bit 62.9766kb
  • identify -verbose gyor.jpg
    Ha bekapcsoljuk a bőbeszédű üzemmódot akkor rengeteg információt kapunk

Kép részlet kivágása
A tárgy képből kiragadunk egy 320x200 pixeles darabot a 200,300 (x,y) pixel kezdőponttól.

uori080505083359.jpg


  • convert gyor.jpg -crop 300x200+200+300 crop_gyor.jpg

vagy daraboljuk fel a képet 100x100 kockákra:

  • convert -crop 100x100 gyor.jpg crop100x100_gyor.jpg

Csoportos műveletek Bash:
  1. for j in `ls *.jpg`; do convert -resize 200x150 -quality 75 $j s_$j; done


A beépített grafikus felületen történő képszerkesztésre a display is alkalmazható:

  • display [kepnev.ext]
i8gl080505083506.jpg


Letölthető állományok:

A leíráshoz csatoltam egy LAMP webszerveren működő böngészőben futtatható PHP programot, valamint a parancssoros változatát. A progi egy adott mappában található nagyméretű képekből elkészíti a kisméretű változatot, adott formátumban. Ha a sh_ kiterjesztésű fájlt bemásoljuk az /usr/bin könyvtárba, akkor globálisan elérhető lesz. A jogosultságról ne feledkezzünk el.
A letöltések között található továbbá a teljes kép és kód állomány, amit teszteléshez használtam.

Webszerverről működő változat. Előtte be kell állítani az útvonalakat, kiterjesztéseket, méretet, minőséget.

<?php
set_time_limit
(0);
error_reporting(0);

/* Forrás képek helye */
$input_dir="/var/www/test/bence/";

/* Cél képek helye */
$output_dir="/var/www/test/bence/s/";

/* mappa létrehozás */
if(!file_exists($output_dir)){
    
mkdir($output_dir0777);
}

/* forrás kiterjesztése */
$input_ext="jpg";

/* kimenet kiterjesztése */
$out_ext="jpg";

/* kimenet mérete
 * -resize 10%x15%
 * -resize 300x200
 * */
$out_size="-resize 400x400";

/* kimenet minősége 
 * 0-100
 * 75< x <100 elfogadható minőség
 * */
$out_quality="-quality 75";

/* fajlok és műveletek */
$fajlok=scandir($input_dir);

foreach(
$fajlok as $fajl){
    if(
preg_match("/{$input_ext}/i"$fajl)){        
        
$out_fajl=str_replace("{$input_ext}""{$out_ext}"strtolower($fajl));
        
system("convert $out_size $out_quality {$input_dir}{$fajl} {$output_dir}{$out_fajl}");
        
chmod ("{$output_dir}{$out_fajl}"0777);
    }
}
?>


Shell Script változat:

> /usr/bin/php
<?php
set_time_limit
(0);
error_reporting(0);

$help=<<<HELP
--------------------------------------------------------------
sh_batch_img.php [/input/dir/] [/output/dir/] [input extension(jpg|png|gif|..)] &lt;output extension(jpg|png|gif|..)] [size(400x400|15%x20%)] [quality(0-100)]
script.php input_dir output_dir input_ext output_ext size quality

for j in `ls *.jpg`; do convert -resize 200x150 -quality 75 
$j s_$j; done

pl.:
sh_batch_img.php /home/kep/nagy/ /home/kep/pici/ png jpg 150x100 75
--------------------------------------------------------------

HELP;

$c=sizeof($argv);
if(
$c<=1){
    die(
"keves parameter!n".$help);
}

//print_r ($argv);
//exit;

/* Forrás képek helye */
$input_dir=$argv[1];

/* Cél képek helye */
$output_dir=$argv[2];

/* mappa létrehozás */
if(!file_exists($output_dir)){
    
mkdir($output_dir0777);
}

/* forrás kiterjesztése */
$input_ext=$argv[3];

/* kimenet kiterjesztése */
$out_ext=$argv[4];

/* kimenet mérete
 * -resize 10%x15%
 * -resize 300x200
 * */
$out_size="-resize {$argv[5]}";

/* kimenet minősége 
 * 0-100
 * 75< x <100 elfogadható minőség
 * */
$out_quality="-quality {$argv[6&gt;}";



/* fajlok és műveletek */
$fajlok=scandir($input_dir);

foreach(
$fajlok as $fajl){
    if(
preg_match("/{$input_ext}/i"$fajl)){        
        
$out_fajl=str_replace("{$input_ext}""{$out_ext}"strtolower($fajl));
        
system("convert $out_size $out_quality {$input_dir}{$fajl} {$output_dir}{$out_fajl}");
        
chmod ("{$output_dir}{$out_fajl}"0777);
    }
}


?>


Könyvajánló:
http://www.packtpub.com/imagemagick/book

A tartalomhoz kapcsolódó linkek:

Cikkhez tartozó letöltés(ek):

fájl_nev: archivej6bn080505090753.zip | pub_nev: pxzgko-batch_img.php.zippxzgko-batch_img.php.zip
Csoportos képműveletek PHP és Convert bináris segítségével. Localhost LAMP, PHP - System függvény, Convert (ImageMagick) igénnyel.
596 Byte
application/zip
fájl_nev: archiveyibb080505090856.zip | pub_nev: 9fn5ca-sh_batch_img.php.zip9fn5ca-sh_batch_img.php.zip
Csoportos képátméretezés SHELL script PHP - System függvény, Convert igénnyel
873 Byte
application/zip
fájl_nev: archivet15o080505091045.zip | pub_nev: jb7o1u-convert_opendir_help.zipjb7o1u-convert_opendir_help.zip
A teszt állományok kóddal együtt letölthetők. Futtatáshoz Linux, Convert bináris kell.
2241724 Byte
application/zip

Bejegyzés küldése


* Üzenet tárgya:


* Neved:


Email (csak ha választ szeretnél):


URL/Honlap (ha szalonképes akkor megjelenik):


* Üzeneted (Tudni kell kérdezni):

* Captcha:
 
  • A *-gal jelölt mezők kitöltése kötelező
  • Az e-mail címben megjelenő adat nem fog megjelenni
  • Az üzenet adminisztrátori jóváhagyásra kerülnek
  • A speciál karakterek használata tiltva van a formon
A tartalomhoz nem tartozik bejegyzés
ubuntu,linux

Blogmarkok

Simple Chat

Egyszerû szöveges fájl alapú PHP chat progi.

Showcase of Interesting Navigation Designs

Érdekes menü, navigáció megvalósítások.

Több mint 306 magyar Linkgyûjtemény

Érdekes gyûjtemény magyar katalógusokról, linkgyûjteményekrõl, cikk katalógusokról. PR érték és alkalmazás szerinti megjegyzéssel. Igényes munka és használható forrás, weblap népszerûsítéshez. Az egyik legjobb hazai publikus SEO lista.

AdMax SEO Toolbar

Firefox kiterjesztés SEO eszközként.

Identica PHP

Identi.ca mikroblog szolgáltatáshoz PHP class, egyszerû használattal.

Twitter OAuth PHP

PHP Oauth részletes leírás, avagy hogyan használhatod távolról a Twittert.

Lightweight PHP Picasa API Version 3.0

PHP osztály Picasa képgaléria elemeinek a kezelésére. RSS-bõl feldolgozza az albumokat és képeket.

Secure backup, sync and sharing made easy.
Kövess a Twitteren

Top5 webes fájlmenedzser

Top5 webes fájlmenedzserA gyűjtésben szereplő elemek weben keresztül valósítanak meg fájlkezelést. A kiválasztásnál kiemelt szempont volt az egyszerű deszktop jellegű szoftverektől megszokott kényelem, a biztonság és a többfelhasználós beállítási lehetőség, egyszerű integrálhatóság és a felhasználhatósági (licenc) szempontok.

2009-5 kedvenc jQuery pluginje

2009-5 kedvenc jQuery pluginje2009-ben is vannak kedvenc jQuery plugin-jeim. Ezt szeretném veletek megosztani.
Úgy érzem kicsit változtam, a plugin választás a funkcionalitáson túl egy picit a parasztvakítás is bejátszik.

(Parasztvakítás (PW): olyan effektek aminek a gyakorlatban szinte semmi haszna nincs, de szemet gyönyörködtető)

Nem..

10 hasznos FireBug kiterjesztés

10 hasznos FireBug kiterjesztésHasznos FireBug képességeit kiterjesztő pluginek. Bár a FireBug önmagába is egy rendkívül jól használható Firefox kiterjesztés. De elérhető hozzá néhány nagyon profi kütyü, ami sokszor önálló funkciót valósít meg, de az esetek nagyobb részében a FirBug képességeit combosítják ki.

Ha még nem ismernéd a

50 Hasznos Firefox kiterjesztés Linuxra

50 Hasznos Firefox kiterjesztés LinuxraKedvenc Linuxon is működö Firefox kiterjesztések, mindennapos felhasználásra és webfejlesztőknek.

A addon-ok működnek Windows-os rendszereken is, de a cikk kifejezetten a Linuxra elérhető és hasznos Firefox kiterjesztésekből szemezget.

A Firefox 3.0 megjelenésekor már volt egy

350 hasznos Gimp effekt, Plugin, Script-Fu

350 hasznos Gimp effekt, Plugin, Script-FuHasznos pluginek, Script-fu-k, effektekkel, technikai megoldások gyűjteménye Gimp 2.6.X verziójához.

A cikknek célja az, hogy egyszerű megoldást adjon Gimp-hez, pluginek beszerzésére.

Szerencsére vannak olyan önzetlen projektek ahol összegyűjtik számunkra ezeket a nélkülözhetetlen eszközöket. Így sikerült összehozni 5 bejegyzésben..

Szoftverek

ArtH2O Blog tartalmából:

PHP Twitter Codeigniter OAuth

Codeigniter Twitter OAuth részletes leírás2010 Augusztus végétől már csak OAuth-on keresztül lehet bejegyzéseket küldeni a Twitterre illetve a hitelesítés ezen keresztül megy. Sok megoldás létezik a dologra, de mindegyik eléggé nyakatekert és nem igazán akarnak működni.

Érdemes elolvasnod a cikket, ha néhány óra kísérletezés meg szeretnél úszni!



Felvéve: 2010-09-04, Utolsó módosítás: 2010-09-04
Twitter, CLASS, Codeigniter, MVC, PHP oauth, twitter, ci, php, social

Bővebben →

10 hasznos új Codeigniter lib

Hasznos Codeigniter Lib-ek 2010-bőlTöbb okból is szeretem a Codeigniter keretrendszert. Az egyik oka, hogy ezt választottam keretrendszerül az nem más mint az egyszerűség. A másik az, hogy nem kell feltalálni a kereket, mert szinte minden tud, amire nekem egy alap alkalmazásnál szükségem lehet. Biztonságos, gyors és egyszerűen tanulható, jól dokumentált, szerethető rendszer. De a bejegyzés nem erről szól, hanem néhány 2010-es hasznos Codeigniter Lib-ről.



Felvéve: 2010-08-27, Utolsó módosítás: 2010-08-28
Codeigniter plugin, Codeigniter, MVC, PHP codeigniter, lib, class, 2010

Bővebben →

Stílusos űrlap elemek

Nem egyŰrlap elemek stílusának a megváltoztatása JavaScript és CSS eszközökkelszerű minden űrlap elemnek stílust adni. Gyakorlatilag checkbox, select, radio, file elemeknek nagyon nem is lehet, vagy csak részben. Erre találtak ki egy érdekes technikát, ami a működés közben az eredeti HTML elemet elfedi és azt egy grafikai elemmel helyettesíti. pl.: Egy checkbox, vagy radio esetében 2 állapota van bekapcsolt és kikapcsolt. Ha lehet kerüljük ezeket a technikákat, mert nagyon böngészőfüggő a működésük. Ha lehet maradjunk az eredeti űrlap elemeknél és azt csinosítsuk.



Felvéve: 2010-08-17, Utolsó módosítás: 2010-08-17
űrlap-design, webdesign, Űrlapok-Form, jQuery form, design

Bővebben →

Térképes cég-és weblapkatalógus

Térképes cégkatalógus és weblapajánló weboldal a regionalisbank.infoMár régóta szerettem volna egy olyan oldalt, ami weblapkatalógusként működik, de kicsit másképpen közelíti meg a dolgokat, mint a jelenleg piacion lévő katalógusok. Egy ilyen újszerű kezdeményezésem volt a szintén Codeigniter alapú Twitt.hu, ami egyben linkrövidítő szolgáltatás is. De a sok jó tulajdonsága mellet, még mindig hiányoltam benne valamit. Ezt a plusz dolgot sikerült beleplántálnom a RegionalisBank.info cég-és weblapkatalógusba.



Felvéve: 2010-08-11, Utolsó módosítás: 2010-08-28
Google Maps, Google, CLASS, SQL, Codeigniter, MVC, PHP terkepes, ceg, ajanlas, webkatalogus

Bővebben →

Kép átméretezés és cache

Kép átméretezés Smarty sablononVan néhány hasznos Smarty plugin, ilyen a Thumb nevű bővítmény is. Nagyon sokáig nem fejlesztették, már azt gondoltam kihalt alóla a fejlesztés, de 2010-ben egy újabb változat jelent meg belőle. Smarty 2.6.X és PHP 5.X.Y verzióhoz.

A bővítménnyel a sablonon tudunk képméreteket legyártani és gyorsítótárazni.



Felvéve: 2010-07-30, Utolsó módosítás: 2010-07-30
Smarty, PHP smarty, image, thumb

Bővebben →