2009-07-14 10 views
1

私はそれを得ようとしています。誰かがページに一定額を寄付するたびに、イメージの別の部分が明らかになります。私は他のロジックのほとんどを持っています(PayPalは素敵な "あなたが識別子を寄付しました"などを提供しています)。しかし、ビットごとにイメージを公開するのに問題があります。ビット単位でイメージを表示していますか?

イメージを完全に公開するまで、小さなチャンク(人は少なくとも250の寄付を望みます)に分割しようとしましたが、複数の書式設定イメージのために機能しません。より良い方法はありますか(PHPの画像処理やCSS/Javascriptなど)?

+2

これは怪しいこれらの擬似のように聞こえますあなたが冷たい飲み物を飲んだときに、ガラスが暖かくなったときに女性を暴露していたポルノの飲み物メガネ:-)そうではないと教えてください。 – paxdiablo

+0

私は世界にはもう1百万画素の狂気が必要だとは思わない。 – Eric

+0

百万ピクセルの広告スパムフェストではありませんが、それは確かです。:) @Paxあのコンセプトは似ていますがポルノではありません –

答えて

3

これは最も簡単な方法ですが、支払レベルを照会して関連するイメージをクライアントに送信するだけです。

ので、image0.jpg(空)、image1.jpg(1セグメント)を持っているimage2.jpgなど、image250.jpg(すべてのセグメント)まで、およびWebアプリケーションが正しいものを提供しています。

ウェブサイトの公開領域でこれらの画像にアクセスできないようにする必要があります。そのため、URLを把握して貴重なものを盗むことはできません。

だから、あなたのWebアプリケーションは、画像を送信する必要があるクエリをimages/image.jpgのリクエストを受信し、実際の画像からのデータストリームに対応、のようなものになります。

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

ねえ、それは実際にはかなりうまくいくかもしれません。時には、あなたは一番単純なことを考えないこともあります。 :)あなたのために可能な最良の答え。 –

0

最も簡単な方法はGoogle ChartsまたはPayPalの画像を使用して、あなたのウェブサイトに適合させることができるかどうかを確認することです。それ以外の場合は、イメージを動的に生成するか、静的に生成する必要があります。それほど多くの画像ではないので、静的に生成することもできます。

多くのツールでこれを行うことができますが、ImageMagickはおそらく最も汎用性があります。独自のイメージを使用したい場合は、ImageMagickを使用してイメージを作成する方法があります。

# 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 

あなたは今、このように見て256枚の画像を持っています:

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

を明らかに、あなたが合うように形状や色を調整することができます。

+0

彼はURLにレベルを入れず、実際にはPaxのソリューションに優れた補足を提供しています。brianeggeのソリューションは、Paxのソリューションが必要な251画像を生成します。 +1。 – Josh

0

<div>内の画像を非表示にすることができます。オーバーフローはhiddenに設定されています。次に、より多くの寄付を受け取るとdiv要素を高くするだけです。

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

CSS:あなただけの251静止画、各支払レベルのための1つを作成し、これまでに受け取った資金の割合に基づいて、動的に正しい静的な画像を提供していないのはなぜ

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

秘密のイメージを見るのはかなり簡単です。 –

+0

ええ、私は知っています。しかし、私はイメージが秘密であるとは思っていませんでした。画像の一部を隠すことが楽しいだけの場合は、これが機能します。しかし、ユーザーが画像全体を見ることができるように寄付をしたいという目的がある場合、これは悪い考えです。 – peirix

+0

+1は負を打ち消す。これは悲惨なことに不安があるという事実が理解されている限り、実際は素晴らしい答えです。 – SamGoody

関連する問題