2009-07-14 5 views
1

Ich versuche es so zu bekommen, jedes Mal, wenn jemand einen festgelegten Betrag auf einer Seite spendet, wird ein weiterer gleicher Teil eines Bildes aufgedeckt. Ich habe das meiste der anderen Logik (PayPal bietet nette einzigartige "Sie haben gespendet" Bezeichner und so), aber ich habe Probleme mit der Veröffentlichung des Bildes nach und nach.Ein Bild Stück für Stück enthüllen?

Ich habe versucht, das Bild in kleine Stücke zu zerlegen (Person will mindestens 250 Spenden, bis das Bild vollständig aufgedeckt wird), aber das funktioniert nicht wegen mehrerer Formatierungsbilder. Gibt es einen besseren Weg (zB PHP-Bildverarbeitung oder vielleicht CSS/Javascript)?

+2

Das klingt verdächtig wie diese pseudo- Porno-Trinkgläser, die früher die Dame enthüllt haben, als das Glas wärmer wurde (zB als du das kalte Getränk trankest) :-) Bitte sag mir, dass es nicht so ist. – paxdiablo

+0

Ich glaube nicht, dass die Welt eine Million Pixel Ad-Raserei braucht. – Eric

+0

Es ist kein Millionen-Pixel-Ad-Spam-Fest, das ist sicher.:) @Pax Uh, es ist ähnlich im Konzept, aber es ist nicht Porno –

Antwort

3

Warum Sie nicht nur 251 statische Bilder erstellen, eine für jede Zahlung Ebene und dienen dazu, die korrekte statische Bild dynamisch, basierend auf dem Anteil der Mittel bisher erhalten hat.

Dies scheint der einfachste Weg zu sein, der einzige Code, der benötigt wird, besteht darin, die Zahlungsebene abzufragen und das relevante Bild an den Client zu senden.

haben also eine image0.jpg (leer), image1.jpg (ein Segment), image2.jpg und so weiter, bis zu image250.jpg (alle Segmente), und Ihre Web-Anwendung die richtige dienen haben.

Sie müssen sicherstellen, dass diese Bilder im öffentlichen Bereich Ihrer Website nicht zugänglich sind, damit die Leute nicht einfach die URL herausfinden und Ihr "Edel" stehlen können.

Also, Ihre Web-Anwendung eine Anforderung für images/image.jpg erhalten, Abfrage, die Bild gesendet werden soll, und mit dem Datenstrom von dem tatsächlichen Bild reagieren, so etwas wie:

if actual > desired: 
    number = 250 
else: 
    number = int (actual * 250/desired) 
imagename = "image" + str(number) + ".jpg" 
+0

Hey, das könnte eigentlich ganz gut funktionieren. Manchmal denkst du nie an die einfachsten Dinge. :) Mögliche beste Antwort für Sie. –

0

Der schnellste Weg wäre, Google Charts oder PayPal Bilder zu verwenden und zu sehen, ob Sie einen zu Ihrer Website anpassen können. Andernfalls müssen Sie die Bilder entweder dynamisch generieren oder statisch generieren. Da es nicht so viele Bilder sind, können Sie sie auch statisch erzeugen.

Sie könnten dies mit einer Anzahl von Werkzeugen tun, aber ImageMagick ist wahrscheinlich das vielseitigste. Wenn Sie ein eigenes Bild verwenden möchten, können Sie es mit ImageMagick so machen.

# take your source image, and make it a known size. 
#In this case, I'll make my image a 256 px square 
convert flower.jpg -resize 256x256^ -gravity center -extent 256x256 flower_256.jpg 
# run this command in a bash shell to generate the images 
for i in $(seq -w 0 256); 
do 
    convert flower_256.jpg -gravity west -background blue -crop ${i}x256+0+0 -extent 256x256 flower_seq_$i.jpg 
done 

Sie werden jetzt 256 Bilder haben wie folgt aussehen:

25% http://www.theeggeadventure.com/2009/reveal/flower_seq_064.jpg 50% http://www.theeggeadventure.com/2009/reveal/flower_seq_128.jpg 75% http://www.theeggeadventure.com/2009/reveal/flower_seq_192.jpg 100% http://www.theeggeadventure.com/2009/reveal/flower_seq_256.jpg

Natürlich können Sie die Geometrie oder Farben anpassen anpassen.

+0

Er legt keine Ebenen in der URL und in der Tat bietet er eine ausgezeichnete Ergänzung zu Pax-Lösung: Brianegge-Lösung wird die 251 Bilder Pax's Lösung erforderlich. +1. – Josh

0

Sie könnten das Bild in einem <div> ausblenden, mit Überlauf auf hidden festgelegt. Dann können Sie einfach das div-Element erhöhen, wenn Sie mehr Spenden erhalten.

<div id="imageContainer"> 
    <img src="secretImg.jpg"/> 
</div> 

CSS:

#imageContainer { 
    height: 20px; 
    overflow: hidden; 
} 
+0

Ziemlich einfach das geheime Bild zu sehen. –

+0

Ja, ich weiß. Aber ich war mir nicht sicher, wie geheim das Bild sein sollte. Wenn es nur ein Spaß wäre, einen Teil des Bildes zu verstecken, würde das funktionieren. Aber wenn es das Ziel ist, dass die Benutzer spenden wollen, um das ganze Bild sehen zu können, dann wäre das eine schlechte Idee. – peirix

+0

+1 um dem negativen entgegenzuwirken. Das ist eigentlich eine gute Antwort, solange man sich darüber im Klaren ist, dass es sehr unsicher ist. – SamGoody