3
我想比較圖像並查找它們是否相同。圖像可以具有相同的名稱,但實際圖像可能不同。我到目前爲止的代碼。如何比較ColdFusion中的兩個圖像
<cfset dirToReadFrom = #ExpandPath('../properties-feed/unzipped/')# />
<cfdirectory
action="list"
directory="#dirToReadFrom#"
listinfo="name"
name="qFile"
sort="asc"
filter="*.jpg"
/>
<cfset images = ArrayNew(1)>
<cfoutput query="qFile">
<cfset ArrayAppend(images, #qFile.name#)>
</cfoutput>
<cfset dirToCreate = #ExpandPath('./assets/images/resized/original/')# />
<cfif not DirectoryExists(dirToCreate)>
<cfdirectory action = "create" directory = "#dirToCreate#" />
<cfoutput><p>Your directory has been created.</p></cfoutput>
</cfif>
<cfzip
action="unzip"
file="#ExpandPath('../properties-feed/data.zip/')#"
destination="#ExpandPath('./assets/images/resized/original/')#"
overwrite="true"
/>
<cfset dirToReadFromOriginal = #ExpandPath('./assets/images/resized/original/')# />
<cfdirectory
action="list"
directory="#dirToReadFromOriginal#"
listinfo="name"
name="qFileOriginal"
sort="asc"
filter="*.jpg"
/>
<cfset imagesLatest = ArrayNew(1)>
<cfoutput query="qFileOriginal">
<cfset ArrayAppend(imagesLatest, #qFileOriginal.name#)>
</cfoutput>
<!--- Loop over your current images --->
<cfloop query="qFileOriginal">
<!--- Check for a matching file name --->
<cfquery name="fileExists" dbtype="query">
SELECT
COUNT(*) AS num_Rec
FROM
qfile
WHERE
name = <cfqueryparam cfsqltype="cf_sql_varchar" value="#qFileOriginal.name#" />
</cfquery>
<!--- do we have a matching file name? --->
<cfif val(fileExists.num_rec)>
<cfimage action="read" name="newImage" source="#dirToReadFrom##qFile.name#"/>
<cfimage action="read" name="originalImage" source="#dirToReadFromOriginal##qFileOriginal.name#"/>
<cfset newImageBlob = ImageGetBlob(newImage) />
<cfset originalImageBlob = ImageGetBlob(originalImage) />
<!--- Compare --->
<cfif toString(newImageBlob) eq toString(originalImageBlob) >
Images are same
<cfelse>
DIFFERENT
</cfif>
</cfif>
</cfloop>
該代碼似乎沒有工作。任何人都可以看到我做錯了什麼?
更新1 從評論
我居然得到的結果是,第一印象是相同的,圖像的文件其餘的都是不同的。但這是不正確的,因爲我比較的大多數圖像都是相同的。
更新2 從評論
它不正確地標識相同的圖像作爲是不同的。我實際得到的是前兩張圖像是相同的,其餘的是不同的。這是不正確的,因爲我擁有的大多數圖像都是相同的。
我實際得到的結果是,第一個圖像是相同的,其餘的文件中的圖像是不同的。但這是不正確的,因爲我比較的大多數圖像都是相同的。 – Roman
定義「似乎沒有工作」 - 它的錯誤,它不正確地識別不同的圖像是相同的,或者它不正確地識別相同的圖像是不同的? – duncan
它錯誤地將相同的圖像標識爲不同。我實際得到的是前兩張圖像是相同的,其餘的是不同的。這是不正確的,因爲我擁有的大部分圖像都是一樣的。 – Roman