1

複数のIMGを重ねて(position:absolute; top:0; left:0;)、それらすべてのレイヤーを1つのソリッドイメージとして保存する必要があります。これどうやってするの?クライアントのバックエンドはColdfusionです。

みんなありがとう!

4

2 に答える 2

4

複数の透明な PNG/GIF があると仮定すると、非常に簡単です (これは、米国の地図上の州の色付けで行いました)。主に imageCopy() と imagePaste() を画像オブジェクトと共に使用します。

<!--- below assumes 600x400 images --->
<cfquery name="election">
    select state from electionResults where winner='Obama'
</cfquery>

<cfimage source='#expandPath('/imgs/us.png')#" name="usMap">

<cfloop query="election">
    <cfimage source="#expandPath('/imgs/#state#-blue.png')#" name="state">
    <cfset img = imageCopy(state, 1,1,600,400)>
    <cfset imagePaste(usMap,img,1,1)>

</cfloop>

<cfimage action="write" source="#usMap#" destination="#expandPath('/imgs/us-obama.png')#"
    overwrite="yes">

<img src="/imgs/us-obama.png">

(テストなしで書かれていますが、正しく見えます)

于 2012-11-08T01:20:25.647 に答える
2

JavaScript を使用する場合は、canvas を使用する必要があります。

バックエンドで実行する場合は、imagecfcなどの画像ライブラリで実行する必要があります。

于 2012-11-08T00:50:31.847 に答える