The Deployer

October 26, 2007

PHP JPEG image resizing

Filed under: PHP — Lucian Daniliuc @ 06:22

Destul de des, atunci cand dezvoltam orice fel de site in care clientul trebuie sa poata pune pe site niste imagini, mai mult ca sigur ca acele imagini sunt de cativa megapixeli si afisarea lor la dimensiunile dorite este de multe ori un task destul de dificil de realizat. Asa am gasit pe netlobo.com un articol dragut cu o functie simpla si scurta care face resize la orice jpeg in anumite dimensiuni maximale, fara sa distorsioneze imaginea:


function resampimagejpg( $forcedwidth, $forcedheight, $sourcefile, $destfile )
{

$fw = $forcedwidth;
$fh = $forcedheight;
$is = getimagesize( $sourcefile );
if(
$is[0] >= $is[1] )
{
$orientation = 0;
}
else
{
$orientation = 1;
$fw = $forcedheight;
$fh = $forcedwidth;
}
if (
$is[0] > $fw || $is[1] > $fh )
{
if( (
$is[0] - $fw ) >= ( $is[1] - $fh ) )
{
$iw = $fw;
$ih = ( $fw / $is[0] ) * $is[1];
}
else
{
$ih = $fh;
$iw = ( $ih / $is[1] ) * $is[0];
}
$t = 1;
}
else
{
$iw = $is[0];
$ih = $is[1];
$t = 2;
}
if (
$t == 1 )
{
$img_src = imagecreatefromjpeg( $sourcefile );
$img_dst = imagecreatetruecolor( $iw, $ih );
imagecopyresampled( $img_dst, $img_src, 0, 0, 0, 0, $iw, $ih, $is[0], $is[1] );
if( !
imagejpeg( $img_dst, $destfile, 90 ) )
{
exit( );
}
}
else if (
$t == 2 )
{
copy( $sourcefile, $destfile );
}
}

?>

Daca acest copy-paste nu arata chiar ok, vezi articolul original.

October 22, 2007

Lorem ipsum Generator

Filed under: Developer's Tools — Lucian Daniliuc @ 12:45

Ipsum.com este un Lorem ipsum dolor sit amet, consectetuer adipiscing elit… Generator. Iti genereaza tone de text, oricat ai nevoie. Textul astfel generat ocupa foarte frumos locul bla-bla-urilor in multitudinea de locuri unde ai nevoie sa povestesti despre… nimic… doar ca sa vezi cum se incadreaza in pagina, sau pe site sau unde ai nevoie.

De exemplu acest articol care este in mod distinctiv mai lung ca majoritatea dar care nu prezinta nici o informatie suplimentara. Asta pentru ca totul se rezuma la Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse arcu. Vivamus in orci. Sed nec ligula. Phasellus pede nisi, mollis interdum, tristique vel, varius mollis, metus. Cras nec dolor. Maecenas elit magna, nonummy in, dignissim a, viverra a, justo. In suscipit. Proin libero. Cras facilisis libero sed felis. Proin sit amet dolor. Aenean nibh. Aenean gravida, urna a aliquam iaculis, orci sem consequat urna, at luctus ante mi nec lectus. Curabitur non lacus sit amet dolor suscipit suscipit. Etiam fringilla libero convallis nulla. Nunc nisi. Mauris orci tellus, ultricies sed, interdum ut, pharetra id, diam. Nullam aliquam turpis ac leo. Ut consectetuer dolor sit amet lectus.

Donec ultricies sem et arcu. Quisque viverra aliquam neque. Proin scelerisque diam consectetuer pede. Aenean laoreet facilisis justo. In lorem ligula, hendrerit in, tincidunt vel, feugiat a, velit. Etiam sed purus quis lacus feugiat eleifend. Nulla vulputate. Proin tincidunt. Suspendisse vehicula orci tristique urna. Nulla neque. Morbi dignissim. Nullam lobortis orci eu pede. Etiam convallis facilisis nulla. Aliquam placerat.

Sed auctor, metus id faucibus pharetra, nisl justo commodo metus, et venenatis nulla purus eget nunc. Donec porttitor fermentum lorem. Proin mollis, pede sit amet consequat pulvinar, odio turpis mollis nulla, ut tincidunt lorem nunc sed justo. Mauris venenatis nisi nec purus. Vestibulum et est. Fusce tristique dui id quam. Nulla tristique. Morbi lacinia nibh nec ipsum. Pellentesque aliquet pulvinar ante. Morbi ac eros quis est pellentesque sagittis. Sed faucibus, odio in elementum pellentesque, lorem tortor hendrerit sapien, convallis eleifend dui nibh nec arcu.

Etiam in est. Integer mollis, enim ut sagittis interdum, elit dui rutrum ante, sed molestie mi leo tempor elit. Nullam rutrum. Aliquam non risus vel turpis pulvinar varius. Aenean laoreet, odio vitae scelerisque hendrerit, augue lacus hendrerit nisl, ut varius velit magna at felis. Suspendisse dictum commodo metus. Ut molestie. Mauris bibendum placerat sem. Pellentesque augue elit, rhoncus et, nonummy vitae, eleifend sed, felis. Nulla nonummy purus ut augue. Sed id erat sed elit suscipit lobortis. Maecenas luctus est placerat ipsum. Aliquam ac odio nec erat consectetuer porta. Suspendisse sit amet metus. Proin eget mauris in velit cursus ultrices.

Nunc et risus. Aenean interdum. Cras quam nulla, euismod quis, pulvinar id, suscipit id, neque. Mauris et velit in leo sodales fermentum. Ut commodo mi id nulla. Vestibulum quis purus. Maecenas volutpat venenatis purus. Nulla urna. Cras molestie, sem id lacinia luctus, elit mi eleifend lacus, vestibulum aliquam metus leo sit amet arcu. Nunc mattis porttitor justo. Ut nibh dolor, semper non, commodo et, scelerisque id, nibh. Integer quis erat. Etiam luctus suscipit justo. Integer vehicula facilisis nunc. Praesent vitae pede. Integer aliquet. Nam vitae tellus eget felis tempus molestie. Proin viverra tristique nisi.

October 17, 2007

programare.org

Filed under: Developer's Tools — Lucian Daniliuc @ 09:33

Site romanesc de programare peste care am dat astazi. Adica programare romaneasca: C/C++, PHP, Java, .NET, VB, Delphi, etc.

Din meniul principal: Forum, Stiri IT, Loc de Munca, Candidati (CV), Proiecte, Download, Articole, Bloguri, Carti, IT, Interviuri, Petitie, Concurs, Firme IT, Blogosfera IT, Wiki Docs.

Pare promitator. Tot aici am gasit si o carte despre programarea PHP. Si mai cool!

PHP5 Singleton pattern

Filed under: PHP — Lucian Daniliuc @ 07:15
class Singleton {    static private $instance = NULL;

    private function __construct() {    }

    static public function getInstance() {        if (self::$instance == NULL) {            self::$instance = new Singleton();        }        return self::$instance;    }}

(source: http://devzone.zend.com/node/view/id/1714)

October 4, 2007

PHP: Zend Framework

Filed under: PHP — Lucian Daniliuc @ 08:57

PROLOG: Am suflat un pic praful care s-a asezat pe acest blog, asa ca mai bag o fisa si continui:

Zend framework pare un framework perfect pentru orice fel de aplicatie ai avea neovie sa dezvolti. Am studiat un pic si Symfony, si noua versiune de CodeIgniter care a ajuns la versiunea 1.5.4.
Symfony mi s-a parut super-dragutz dar putin prea “automatizat” pentru gusturile mele.

Powered by WordPress