coldfusion8/mysql 5.0.88
Jquery Mobile のフロント エンドでサイトを作成しています。また、 photoswipe.jsプラグインも使用しています。これにより、画像をズームして別のビュー レイヤーで閲覧できます。
写真をスワイプできる画像を設定するには、出力する必要があります
<cfoutput>
<a class="swipeMe" rel="external" href="#variables.imageSrc#">
<img src="#variables.imageSrc#" class="adaptImg ui-li-thumb" />
</a>
</cfoutput>
問題はimageSrc
ユーザーによって提供されるため、画像を表示する前に画像を取得/検証/サイズ変更する必要があり、写真のスワイプリンク用の画像のパスが必要です。
私はしばらくこれをいじっていて、次の解決策を思いつきました:
// read img from user specs
<cfimage name="myImage" source="#bildpfad##bilddateiname#" action="read" />
<cfif IsImage(myImage) is true>
// resize
<cfscript>
ImageSetAntialiasing(myImage,"on");
variables.breite = 400;
ImageScaleToFit(myImage, variables.breite,"", "highestPerformance");
</cfscript>
// write to xml, so I can get the path
<cfxml variable="imageXml">
<cfimage quality=".5" action="writetobrowser" source="#myImage#" class="adaptImg ui-li-thumb"/
</cfxml>
<cfset variables.imageSrc = imageXml.xmlRoot.xmlAttributes.src>
// output
<cfoutput>
<a class="swipeMe" rel="external" href="#variables.imageSrc#">#imageXml#</a>
</cfoutput>
</cfif>
これは機能しますが、これを実行しているとますます多くのメモリが失われるため、アプリケーションがほとんど停止し、メモリもリークしているようです。
質問:
上記のコードでメモリ リークが発生する明らかな問題はありますか? 画像がある種の一時ディレクトリ (CFFileservelet?) に書き込まれ、しばらくそこにとどまり、メモリがブロックされていると想像します。もしそうなら、画像検索でこれを処理するための代替アプローチは何ですか?
ありがとう!