Png ή gif?

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

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

Απάντηση
Michelle
Δημοσιεύσεις: 631
Εγγραφή: 13 Αύγ 2005 17:12

Png ή gif?

Δημοσίευση από Michelle » 03 Νοέμ 2005 07:35

Φτιάχνω ένα scriptάκι (ναι, ναι μαθαίνω κι εγώ php :P ) που δημιουργει εικόνες on the fly συνθέτοντας 3 αρχικές εικόνες τις οποίες επιλέγει ο χρήστης μέσω μιας φόρμας.
Το ερώτημα είναι, να το κάνω όλο αυτό με GIF (δλδ οι αποθηευμένες και δημιουργηθείσες εικόνες να είναι GIF) ή PNG?
Βλέπω οτι πολλοί το κάνουν με PNG ενώ δεν υποστηρίζεται καλά απο όλους τους browsers... Υπάρχει κάποιος λόγος?
Εμένα αυτό που με νοιάζει είναι να είναι το script συμβατό με όσο το δυνατόν περισσότερους servers και browsers.
Oι εικόνες δεν με περιορίζουν μιας και είναι όλες το πολύ 256 χρώματα και χωρίς alpha transparency.
Επίσης αν τις κάνω σε png να τις αποθηκευσω σε 8-bit png (μιας και δεν έχω πρόβλημα με τα χρώματα) ή σε 24 bit? Επηρεάζει κάτι αυτό?

Ευχαριστώ πάρα πολύ εκ των προτέρων! :)

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Png ή gif?

Δημοσίευση από fafos » 03 Νοέμ 2005 16:28

Oi perissoteroi protimoun PNG logo tou oti kratoun poiothta se xamhles analyseis kai giati merikes ekdoseis tou GD den yposthrizoun gif.
Gia web apothikeueis se 8bit logo tou gnostou provlhmatos tou explorer sta 24.. me ton neo explorer 7 exei lythei to provlhma alla mexri na ton valoun oloi (se kammia 10aria xronia dhladh :) ) xrhsimopoihse ta 8bita.. an o gd tou server sou yposthrizei gifs xrhsimopoihse gifs, an pali exeis anti gia gd imagemagick xrhsimopoihse auton an thes kalyterh poiothta kai xrhsh efe pano sthn eikona..

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Png ή gif?

Δημοσίευση από panosru » 03 Νοέμ 2005 16:33

ego prosopika xrhshmopoio png-24b kai den exo kanena problhma :D

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Png ή gif?

Δημοσίευση από fafos » 03 Νοέμ 2005 16:41

Nai? an einai traans ti ginete me ton explorer? gia des auto me explorer..
Συνημμένα
gallery.png
gallery.png (2.78 KiB) Προβλήθηκε 1853 φορές

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27616
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Png ή gif?

Δημοσίευση από cordis » 03 Νοέμ 2005 17:22

δεν είναι transparent σε IE, σε Opera και FireFox είναι οκ...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

Png ή gif?

Δημοσίευση από panosru » 03 Νοέμ 2005 21:17

ego ok to blaipo :/

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Png ή gif?

Δημοσίευση από Rapid-eraser » 03 Νοέμ 2005 21:17

Ypirxe kai alli mia doafora pou ekave tous webmaster va xrisimopiouv ta png (idios stnv php:P)
Aftos ntav oti n patevta gia tov algori8mo tou gif ntav commertial , evo tou png ntav GPL kai ta GD stis teleftees ekdoseis tis 1.x kai 2.x eixav ksilosei to support twv gif.

Stis teletees versions omos pou aposir8ike n patevta gou gif giati elikse epavil8av.

Prosopika xrisimopiw png mexri twra xoris kapoio sigkekrimevo logo outos n allos stnv divamiki paragogi grafikwv me php dev exeis pote transparent meroi opote dev mporw va pw oti eixa kapoia diafora.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Michelle
Δημοσιεύσεις: 631
Εγγραφή: 13 Αύγ 2005 17:12

Png ή gif?

Δημοσίευση από Michelle » 03 Νοέμ 2005 21:23

Είχα κάνει ενα ποστ εδώ πριν ώρες αλλά δεν το βλέπω τωρα... Μάλλον καμία βλακεία θα έκανα και θα έκλεισα το tab :oops:
Λοιπόν τελικά με png 8-bit το έκανα και δουλεύει τζάμι! :D
Δεν ήξερα οτι έχουν πρόβλημα μονο τα 24μπιτα png, νόμιζα οτι έχουν όλα!
Κάτι άλλο τώρα... Θέλω ο χρήστης να μπορεί να αποθηκεύσει το δημιουργηθέν εικόνιδιο χωρίς να κάνει δεξί κλικ αλλά πατώντας απλώς ένα κουμπάκι (γιατί ίσως οι n00bs να δυσκολεύονται :P). Γίνεται αυτό? Αν ναι πως?
Επίσης αν κάποιος θέλησει να χρησιμοποιήσει σε ποστ του την εικόνα που παράγεται δυναμικά είναι κακό για τον σερβερ? Να τους αποτρέπω? Σημειώστε οτι αν επιτρέψω κάτι τετοιο μάλλον θα γίνεται κατα κόρον μιας και το προγραμματάκι μου παράγει smilies (πως τα παράγει? Θα δείτε όταν το ανοίξω :P Πάντως δεν πρόκειται για αυτό που βάζεις απλά κειμενο σε μια ταμπέλα που μιλούσα πριν, το δικό μου είναι τελείως διαφορετικο)

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Png ή gif?

Δημοσίευση από skeftomilos » 04 Νοέμ 2005 03:00

Οι IE5 & IE6 δεν έχουν κανένα πρόβλημα με τα 24bpp PNGs, αρκεί να μην έχουν διαφανή μέρη. Υπάρχει πάντως λύση για το θέμα της transparency, αλλά δεν είναι της ώρας. Το θέμα όμως είναι το μέγεθος των αρχείων, τα 24bpp είναι αρκετά μεγαλύτερα από τα 8bpp. Ακόμα γενικά τα 8bpp PNGs είναι μικρότερα αρχεία από τα αντίστοιχα GIFs, αλλά αυτό αφορά περισσότερο τις μεγάλες εικόνες. Για μικρά εικονίδια (όπως smilies) δεν υπάρχει διαφορά.

Για να μην επιβαρύνεται ο server πρέπει να φροντίσεις να γίνει caching των εικόνων στον browser του κάθε χρήστη. Αυτό γίνεται με λίγους headers, δες την PHP εντολή header() στο manual και θα δεις πώς γίνεται.

Για να αποθηκευτεί η εικόνα στον δίσκο το απλούστερο είναι να γράψεις μία οδηγία για τους newbbies (κάντε δεξί κλικ και Save Image As...), διαφορετικά πρέπει να ξανασταλεί η εικόνα από τον server ως ανεξάρτητο αρχείο, σε συνδυασμό με τον header Content-Disposition ώστε να εμφανιστεί αυτόματα το παράθυρο διαλόγου Save As:

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

header('Content-Disposition: attachment; filename="eikona.png"');
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Michelle
Δημοσιεύσεις: 631
Εγγραφή: 13 Αύγ 2005 17:12

Png ή gif?

Δημοσίευση από Michelle » 04 Νοέμ 2005 03:42

Αν κατάλαβα καλά αυτό που είπες, έχω μια απορία:
Ακόμα κι αν γίνει cached απο τον browser του μέλους, για να το δούν οι άλλοι δεν θα πρέπει να καλείται καθε φορά το αρχείο php που δημιουργεί το smilie? Άρα μια τρύπα στο νερόοοοο. :P Αλήθεια αν γίνεται έτσι πόσο θα επιβαρύνει το σερβερ? Θα ήταν απιστευτα βολικό!

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Png ή gif?

Δημοσίευση από skeftomilos » 04 Νοέμ 2005 04:51

Φυσικά ο browser του κάθε ξεχωριστού χρήστη θα πρέπει να κατεβάσει την εικόνα τουλάχιστον μία φορά. Αν όμως ο browser ενημερωθεί σωστά ότι το αρχείο μπορεί να γίνει cached, δε θα το ξανακατεβάσει σε επόμενα requests. Πάντως μια πιο απλή λύση μπορεί να είναι να αποθηκεύεις απλά τη νέα εικόνα σε κάποιο directory στον server, και να κάνεις link από τη σελίδα σε αυτό το αρχείο. Έτσι όμως χάνεται η δυνατότητα για Save με τον Content-Disposition header...
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Michelle
Δημοσιεύσεις: 631
Εγγραφή: 13 Αύγ 2005 17:12

Png ή gif?

Δημοσίευση από Michelle » 04 Νοέμ 2005 04:53

Επίσης με το προγραμματάκι αυτό (θα το βρεις στην ενότητα "fun!" ;)) μπορεί να φτιάξει κανείς μέχρι και 6000 διαφορετικά smilies... Οπότε όπως καταλαβαίνεις δεν είναι ο,τι καλύτερο να αποθηκεύονται...
Αλλά δεν μου απάντησε κανείς... Όπως έχουν τώρα τα πράγματα ΠΟΣΟ βαρυ θα είναι κατι τέτοιο για το σερβερ? :-?

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Png ή gif?

Δημοσίευση από skeftomilos » 05 Νοέμ 2005 02:27

Nice! Τελικά συνδύασες PHP + JavaScript, ότι καλύτερο δηλαδή. :) Όμως το να αποθηκεύσει κάποιος το smiley στην υπολογιστή του δεν είναι και ιδιαίτερα χρήσιμο. Αν δε μπορεί να βάλει τα προσωπάκια στα posts του, να τα κάνει τι;

Κάτι άλλο που βλέπω είναι το πολύ μακρύ url που μπορεί να δημιουργηθεί, παράδειγμα (κομμένο για να χωρέσει):

http://www.e-steki.com/forum/modules/e- ... reator.php?
face=http://www.e-steki.com/forum/images/smi ... yellow.png&
eyes=http://www.e-steki.com/forum/images/smi ... eyes/7.png&
mouth=http://www.e-steki.com/forum/images/smi ... uth/18.png


321 bytes, ενώ το όριο του IE6 είναι κάπου 488 αν θυμάμαι καλά. Θα μπορούσε να μειωθεί εύκολα γιατί υπάρχει πολύ πλεονάζουσα πληροφορία, π.χ.:

http://www.e-steki.com/forum/modules/e- ... 7&mouth=18

Κατά τη γνώμη μου πρέπει να εμφανίσεις το παραγόμενο url μαζί με τον παραγόμενο smiley, ώστε να μπορεί να χρησιμοποιηθεί σε posts. Αν φροντίσεις για το caching μην ανησυχείς καθόλου για την επιβάρυνση του server. Να ανησυχείς περισσότερο για την αύξηση μεγέθους των μηνυμάτων, καθώς για κάθε προσωπάκι ενός μηνύματος (που μπορεί να γίνει απεριόριστα quoted) θα προστίθενται 100+ bytes στη database... Μία πιο σοφιστικέ προσέγγιση θα ήταν η εφεύρεση ενός νέου bbcode tag, π.χ.:

[smiley=0,7,18]

Μόνο 15 bytes, αλλά θέλει δουλειά. :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Michelle
Δημοσιεύσεις: 631
Εγγραφή: 13 Αύγ 2005 17:12

Png ή gif?

Δημοσίευση από Michelle » 05 Νοέμ 2005 02:51

Κι όμως, το bbcode tag που λές είναι πανέυκολο σε vbulletin μιας και έχει ενσωματωμένο custom BBcodes editor. Και πολύ ωραία ιδέα παρεπιπτόντως!
Πάντως πολύ δύσκολη η javascript βρε παιδί μου, πολύ πακέτο! Είδα κι έπαθα να καταλάβω πως να την κάνω, και να φανταστείς οτι είχα μπροστά μου κάτι παρόμοιο! Ενω η php για το συγκεκριμένο app πανεύκολη!!
Θα το δουλέψω τώρα αυτό με τη μείωση του URL. Λες δεν θα βαρύνει πολύ ο σερβερ αμα το καλεί κάθε φορά το php ε? Ωραία! Το caching μόνο δεν έχω καταλάβει πως θα το κάνω! Μπορείς να μου πεις ΑΝΑΛΥΤΙΚΑ? :P
Πάντως το δημοσιευσα στο org και έγινε hit! Μέσα σε μία μέρα 27+ installs δηλαδή περισσότερο απο όλα τα υπόλοιπα mods μου που υπάρχουν πόσο καιρό τώρα! Μόνο που μερικοί είχαν κάτι περίεργα προβλήματα ενώ σε άλλους δουλευεί μια χαρά :-?

ΥΓ: Σου έχω στείλει ενα πμ αλλά δεν μου απάντησες ενώ είδα οτι το διάβασες... :( :( :(

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Png ή gif?

Δημοσίευση από skeftomilos » 05 Νοέμ 2005 03:26

Είχα υπόψη μου τον παρακάτω κώδικα που υπάρχει στο PHP manual:

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

<?php
// Date in the past
header&#40;"Expires&#58; Mon, 26 Jul 1997 05&#58;00&#58;00 GMT"&#41;;

// always modified
header&#40;"Last-Modified&#58; " . gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41; . " GMT"&#41;;

// HTTP/1.1
header&#40;"Cache-Control&#58; no-store, no-cache, must-revalidate"&#41;;
header&#40;"Cache-Control&#58; post-check=0, pre-check=0", false&#41;;

// HTTP/1.0
header&#40;"Pragma&#58; no-cache"&#41;;
?>
...ο οποίος όμως κάνει ακριβώς το αντίθετο! Εξασφαλίζει δηλαδή ότι δε θα γίνει cashing. Για να γίνει caching υποθέτω ότι θα αρκεί κάτι σαν αυτό:

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

<?php
  // Date in the future
  header&#40;"Expires&#58; Mon, 1 Jan 2007 00&#58;00&#58;00 GMT"&#41;;
?>
Όμως δεν είμαι σίγουρος, οπότε ας απαντήσει αν κάποιος άλλος γνωρίζει καλύτερα.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

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

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

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