php photo gallery with lightbox

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

php photo gallery with lightbox

Δημοσίευση από txc » 23 Απρ 2011 20:33

fafos έγραψε:yparxei kai h aplh lysh me style:

Κώδικας: Επιλογή όλων

style='max-width:120px;max-height:90px;'
ena paradeigma efamoghs edo:

http://mountain-camp.gr/album.php?c=26 (me 100X75px)

sta tags ths photo den prepei na dinetai width=xx kai height=xx gia na doulepsei sosta..


oso gia ta gif animations, mporeitai na xrhsimopoihsete mia class opou tha elenxei an auto to gif einai animation.. katopin lete sto script oti an einai pragmati animation gif na mhn to peiraksei alla na to afhsei opos exei..

h class elenxou:


Κώδικας: Επιλογή όλων

<?php
class gif_info &#123;
    var $line, $error, $globalTable, $globalTableSize, $globalTableSort;
    var $pallete = array&#40;&#41;;
    var $info = array&#40;&#41;;
    function gif_info&#40;$img&#41; &#123;
        $handle = fopen&#40;$img,'rb'&#41;;
        $this->line = fread&#40;$handle, filesize&#40;$img&#41;&#41;;
        fclose&#40;$handle&#41;;
        if &#40;&#40;substr&#40;$this->line, 0, 6&#41; != "GIF89a"&#41; && &#40;substr&#40;$this->line, 0, 6&#41; != "GIF87a"&#41;&#41; &#123;
            $this->error = true;
            $this->show_error;
        &#125;
        else &#123;
            $this->info&#91;'format'&#93; = substr&#40;$this->line, 0, 6&#41;;
        &#125;
    &#125;
    //Returns an array &#40;0 => width, 1 => height&#41;
    function get_size&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        else &#123;
            $widtha = substr&#40;$this->line, 6, 1&#41;;
            $widthb = substr&#40;$this->line, 7, 1&#41;;
            $width = hexdec&#40;bin2hex&#40;$widthb.$widtha&#41;&#41;;
            $heighta = substr&#40;$this->line, 8, 1&#41;;
            $heightb = substr&#40;$this->line, 9, 1&#41;;
            $height = hexdec&#40;bin2hex&#40;$heightb.$heighta&#41;&#41;;
            $this->info&#91;'width'&#93; = $width;
            $this->info&#91;'height'&#93; = $height;
            return array&#40;$width, $height&#41;;
        &#125;
    &#125;
    //Returns pixel aspect ratio if set.
    //Don't know why anyone would want this info, but here it is.
    function pixel_aspect_ratio&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        else &#123;
            $ratio = hexdec&#40;substr&#40;$this->line, 12, 1&#41;&#41;;
            if &#40;$ratio&#41; &#123;
                $aspectRatio = &#40;$ratio + 15&#41; / 64;
            &#125;
            else &#123;
                $aspectRatio = "None Specified";
            &#125;
            $this->info&#91;'aspectRatio'&#93; = $aspectRatio;
            return $aspectRatio;
        &#125;
    &#125;
    //Misc info
    function global_color_info&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        else &#123;
            $val = hexdec&#40;bin2hex&#40;substr&#40;$this->line, 10, 1&#41;&#41;&#41;;
            if &#40;$val & 128&#41; &#123;
                $this->globalTable = true;
            &#125;
            $resolution = &#40;$val & 64&#41; ? 4 &#58; 0;
            $resolution += &#40;$val & 32&#41; ? 2 &#58; 0;
            $resolution += &#40;$val & 16&#41; ? 1 &#58; 0;
            $this->globalTableSize = &#40;$val & 4&#41; ? 4 &#58; 0;
            $this->globalTableSize += &#40;$val & 2&#41; ? 2 &#58; 0;
            $this->globalTableSize += &#40;$val & 1&#41; ? 1 &#58; 0;
            $this->globalTableSort = &#40;$val & 8&#41;;
            $this->info&#91;'resolution'&#93; = $resolution;
        &#125;
    &#125;
    //If global table found, returns array of hex color values
    function get_color_table&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        elseif &#40;$this->globalTable&#41; &#123;
            $tableSize = 3 * pow&#40;2, $this->globalTableSize + 1&#41;;
            $val = substr&#40;$this->line, 13, $tableSize&#41;;
            $i = 0;
            while &#40;$i <= $tableSize / 3&#41; &#123;
                array_push&#40;$this->pallete, bin2hex&#40;substr&#40;$val, $i, 3&#41;&#41;&#41;;
                $i = $i + 3;
            &#125;
            $this->info&#91;'pallete'&#93; = $this->pallete;
            return $this->pallete;
        &#125;
    &#125;
    //Returns number of frames in GIF
    //Returns 1 if image is not animated
    function get_frames&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        else &#123;
            $frames = explode&#40;'21f904', bin2hex&#40;$this->line&#41;&#41;;
            $this->info&#91;'frames'&#93; = sizeof&#40;$frames&#41; - 1;
            return $this->info&#91;'frames'&#93;;
        &#125;
    &#125;
    function info_dump&#40;&#41; &#123;
        if &#40;$this->error&#41; &#123;
            $this->show_error&#40;&#41;;
        &#125;
        else &#123;
            $this->get_size&#40;&#41;;
            $this->pixel_aspect_ratio&#40;&#41;;
            $this->global_color_info&#40;&#41;;
            $this->get_color_table&#40;&#41;;
            $this->get_frames&#40;&#41;;
            return $this->info;
        &#125;
    &#125;
    function show_error&#40;&#41; &#123;
        echo 'Not a valid GIF file';
    &#125;
&#125;
$image = new gif_info&#40;'ONOMA.gif'&#41;;
$info = $image->info_dump&#40;&#41;;


?> 

tora me ena if kseroume an auto to gif einai animation h oxi:

Κώδικας: Επιλογή όλων


if&#40;$info&#91;frames&#93;  > 1&#41; &#123; echo 'auto to gif einai animation';&#125;
else &#123; echo 'auto to gif DEN einai animation';&#125;
να αναβιώσω λίγο ένα παλιό θέμα, με τις διαστάσεις, αλλάζοντας τον κώδικα από :

Κώδικας: Επιλογή όλων

echo&#40;"<a href="&#123;$image&#125;"  rel="lightbox&#91;roadtrip&#93;" span class="cursor_zoom">
<img src="&#123;$thumb&#125;" &#123;$diastaseis&#125;  border=0></a>"&#41;;&#125; 
σε

Κώδικας: Επιλογή όλων

<img src="&#123;$thumb&#125;" style='max-width&#58;100px;max-height&#58;75px;' border=0></a>"&#41;;&#125; 
μια μακρόστενη φώτο τη βγάζει σε καλή αναλογία το thumb της αλλα είναι μικρή σε σχέση με τις άλλες, πως μπορεί να γίνει σαν το παράδειγμα που έχεις εσύ?
να είναι όλες στο ίδιο μέγεθος πλαίσιου άσχετα με το αν είναι μεγάλες ή μικρές?

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

php photo gallery with lightbox

Δημοσίευση από vassilism » 23 Απρ 2011 21:04

txc έγραψε:να είναι όλες στο ίδιο μέγεθος πλαίσιου άσχετα με το αν είναι μεγάλες ή μικρές?
Η καλύτερη λύση είναι να γίνει crop σε συγκεκριμένο πλάτος και ύψος.
Δηλαδή να κόβονται κάποια κομμάτια της αρχικής φωτογραφίας κατά το resize της μικρογραφίας.

txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

php photo gallery with lightbox

Δημοσίευση από txc » 23 Απρ 2011 21:56

κάποιο παράδειγμα γιαυτό?


txc
Δημοσιεύσεις: 626
Εγγραφή: 02 Δεκ 2003 23:08

php photo gallery with lightbox

Δημοσίευση από txc » 23 Απρ 2011 23:29

thanks

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

php photo gallery with lightbox

Δημοσίευση από pimpogio » 27 Απρ 2011 12:41

η καλυτερη λυση ειναι αυτη στο θεμα που εχω ανοιξει στο
αλλο φορουμ του css με το js

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες