เมื่อแสดงสินค้าที่ด้านหน้าของเว็บไซต์ โดยทั่วไปจะใช้ภาพขนาดย่อ คลิกเพื่อเข้าสู่ภาพขนาดใหญ่
รูปขนาดย่อนำมาซึ่งปัญหาสองประการ:
1. หากมีการส่งภาพขนาดใหญ่เพียงภาพเดียวไปยังพื้นหลัง ความกว้างและความสูงของภาพขนาดใหญ่จะได้รับการแก้ไขเฉพาะเมื่อมีการแสดงภาพขนาดย่อเท่านั้น ซึ่งไม่เพียงแต่จะทำให้ภาพขนาดย่อผิดรูป แต่ยังทำให้ความเร็วในการเข้าถึงหน้าช้าลงอีกด้วย
2. หากพื้นหลังอัปโหลดรูปภาพสองภาพทุกครั้ง หนึ่งภาพขนาดใหญ่และภาพขนาดย่อหนึ่งภาพ ในกรณีนี้ไม่มีปัญหาใน 1 แต่จะสร้างปัญหาให้กับเจ้าหน้าที่แบ็คเอนด์อย่างมาก เนื่องจากเจ้าหน้าที่แบ็กเอนด์ไม่จำเป็นต้องรู้วิธีการประมวลผลและสร้างภาพขนาดย่อ แม้ว่าพวกเขาจะรู้และสามารถดำเนินการได้อย่างรวดเร็ว แต่ก็มีการเสียเวลาบ้าง
รหัสต่อไปนี้สามารถช่วยให้คุณใช้ส่วนประกอบ AspJpeg เพื่อสร้างภาพขนาดย่อตามอัตราส่วนความกว้างและความสูงได้
ดาวน์โหลดส่วนประกอบ AspJpeg: http://www.aspjpeg.com/download.html
การใช้ส่วนประกอบ AspJpeg: http://www.mydw.cn/tech/1/766.html
รหัสทะเบียน: 48958-77556-02411
-
Dim sOriginalPath
sOriginalPath = "รูปภาพ/1.gif"
'โดยทั่วไปจะได้รับเส้นทางรูปภาพต้นฉบับหลังจากการอัปโหลดหรือ
ได้รับ Dim จากฐานข้อมูล sReturnInfo, sSmallPath 'ฟังก์ชันส่งคืนข้อมูล เส้นทางภาพขนาดย่อ
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
การตอบสนอง เขียน "ข้อมูลการส่งคืน:" & sReturnInfo & "<br/>"
ถ้า InStr(sReturnInfo, "Error_") <= 0 จากนั้น
sSmallPath = sReturnInfo 'ข้อมูลการส่งคืนคือ'
'เขียน sSmallPath ไปยังฐานข้อมูล
-
อื่น
การตอบสนองเขียน "ข้อผิดพลาดโดยละเอียด:"
เลือกกรณี sReturnInfo
กรณี "ข้อผิดพลาด_01"
Response.Write "<font color='red'>ล้มเหลวในการสร้างส่วนประกอบ AspJpeg ส่วนประกอบไม่ได้รับการติดตั้งและลงทะเบียนอย่างถูกต้อง</font>" & "<br/>"
กรณี "ข้อผิดพลาด_02"
Response.Write "<font color='red'>ไม่มีรูปภาพต้นฉบับ ตรวจสอบค่าที่ส่งผ่านในพารามิเตอร์ s_OriginalPath</font>" & "<br/>"
กรณี "ข้อผิดพลาด_03"
Response.Write "<font color='red'>การบันทึกภาพขนาดย่อล้มเหลว สาเหตุที่เป็นไปได้: ไม่มีที่อยู่พื้นฐานสำหรับการบันทึกภาพขนาดย่อ ตรวจสอบค่าที่ส่งผ่านในพารามิเตอร์ s_OriginalPath ไม่มีสิทธิ์ในการเขียนไปยังไดเร็กทอรี พื้นที่ดิสก์ไม่เพียงพอ < /font>" & "<br/>"
กรณี "Error_Other"
Response.Write "<font color='red'>ข้อผิดพลาดที่ไม่รู้จัก</font>" & "<br/>"
สิ้นสุดการเลือก
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
%>
ชื่อไฟล์ต้นฉบับ: <%=sOriginalPath%><br/>
ชื่อไฟล์ภาพขนาดย่อ: <%=sSmallPath%><br/>
รูปภาพต้นฉบับ: <img src='<%=sOriginalPath%>' border=0><br/><br/>
รูปขนาดย่อ: <img src='<%=sSmallPath%>' border=0>
-
'=================================================' = ===============
'Author:หลายหลาก QQ:25313644
'ฟังก์ชั่น: สร้างภาพขนาดย่อตามภาพที่ระบุ
'หมายเหตุ: "เส้นทาง" ที่กล่าวถึงด้านล่างนี้เป็นเส้นทางสัมพัทธ์ทั้งหมดที่เกี่ยวข้องกับไฟล์ที่เรียกใช้ฟังก์ชันนี้
'พารามิเตอร์:
' s_OriginalPath: ตัวอย่างเส้นทางรูปภาพต้นฉบับ: images/image1.gif
' s_BuildBasePath: พาธพื้นฐานสำหรับการสร้างรูปภาพ ไม่ว่าจะลงท้ายด้วย "/" หรือไม่ก็ตาม เช่น รูปภาพ หรือ รูปภาพ/
' n_MaxWidth: สร้างความกว้างสูงสุดของรูปภาพ
' หากภาพขนาดย่อที่แสดงในเบื้องหน้าคือ 100*100 ที่นี่ n_MaxWidth=100, n_MaxHeight=100
' n_MaxHeight: สร้างความสูงสูงสุดของรูปภาพ
'มูลค่าส่งคืน:
'คืนเส้นทางของภาพขนาดย่อที่สร้างขึ้น
'การจัดการข้อผิดพลาด:
' หากเกิดข้อผิดพลาดระหว่างการทำงานของฟังก์ชัน รหัสข้อผิดพลาดจะถูกส่งกลับ รหัสข้อผิดพลาดเริ่มต้นด้วย "ข้อผิดพลาด"
' Error_01: ไม่สามารถสร้างส่วนประกอบ AspJpeg ได้ ติดตั้งและลงทะเบียนส่วนประกอบไม่ถูกต้อง
' Error_02: ไม่มีรูปภาพต้นฉบับ โปรดตรวจสอบค่าที่ส่งผ่านพารามิเตอร์ s_OriginalPath
' Error_03: การบันทึกภาพย่อล้มเหลว สาเหตุที่เป็นไปได้: ไม่มีที่อยู่ฐานการบันทึกภาพขนาดย่อ ตรวจสอบค่าที่ส่งผ่านในพารามิเตอร์ s_OriginalPath ไม่มีสิทธิ์ในการเขียนไปยังไดเร็กทอรีไม่เพียงพอ
' Error_Other: ข้อผิดพลาดที่ไม่รู้จัก
'ตัวอย่างการโทร:
'Dim sSmallPath' เส้นทางรูปขนาดย่อ
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'=================================================' = ===============
ฟังก์ชัน BuildSmallPic (s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
ผิดพลาด.เคลียร์
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
'ตรวจสอบว่าส่วนประกอบได้รับการลงทะเบียนแล้วหรือไม่'
DimAspJpeg
ตั้งค่า AspJpeg = Server.Createobject("Persits.Jpeg")
ถ้า Err.Number <> 0 แล้ว
ผิดพลาด.เคลียร์
BuildSmallPic = "ข้อผิดพลาด_01"
ออกจากฟังก์ชัน
สิ้นสุด ถ้า
'ตรวจสอบว่ามีภาพต้นฉบับอยู่หรือไม่
Dims_MapOriginalPath
s_MapOriginalPath = เซิร์ฟเวอร์ MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath 'เปิดภาพต้นฉบับ
ถ้า Err.Number <> 0 แล้ว
ผิดพลาด.เคลียร์
BuildSmallPic = "ข้อผิดพลาด_02"
ออกจากฟังก์ชัน
สิ้นสุด ถ้า
'รับความกว้างและความสูงของภาพขนาดย่อตามสัดส่วน
Dim n_OriginalWidth, n_OriginalHeight 'ความกว้างและความสูงของภาพต้นฉบับ
Dim n_BuildWidth, n_BuildHeight 'ความกว้างของรูปขนาดย่อ ความสูง
หรี่ div1, div2
ดิม n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
ถ้า n_OriginalWidth > n_MaxWidth แล้ว
n1 = n_OriginalWidth / n_MaxWidth
อื่น
n_BuildWidth = n_OriginalWidth
สิ้นสุดถ้า
ถ้า n_OriginalHeight > n_MaxHeight แล้ว
n2 = n_OriginalHeight / n_MaxHeight
อื่น
n_BuildHeight = n_OriginalHeight
สิ้นสุดถ้า
ถ้า n1 <> 0 หรือ n2 <> 0 แล้ว
ถ้า n1 > n2 แล้ว
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
อื่น
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
สิ้นสุดถ้า
สิ้นสุดถ้า
'ระบุความกว้างและความสูงที่จะสร้าง
AspJpeg.Width = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--เริ่มบันทึกภาพขนาดย่อ--
Dim pos, s_OriginalFileName, s_OriginalFileExt 'ตำแหน่ง, ชื่อไฟล์ต้นฉบับ, นามสกุลไฟล์ต้นฉบับ
pos = InStrRev(s_OriginalPath, "/") + 1
s_OriginalFileName = กลาง (s_OriginalPath, pos)
pos = InStrRev(s_OriginalFileName, ".")
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName 'พาธสัมบูรณ์รูปขนาดย่อ ชื่อไฟล์รูปขนาดย่อ
Dim s_EndFlag 'ตัวอย่างแท็กปิดท้ายชื่อไฟล์รูปภาพขนาดเล็ก: หากชื่อไฟล์รูปภาพขนาดใหญ่คือ "image1.gif" และแท็กปิดท้ายคือ "_small" ดังนั้นชื่อไฟล์รูปภาพขนาดเล็กจะเป็น "image1_small.gif"
ถ้าถูกต้อง(s_BuildBasePath, 1) <> "/" ดังนั้น s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = เซิร์ฟเวอร์ MapPath(s_BuildBasePath)
s_EndFlag = "_small" 'สามารถปรับแต่งได้ตราบใดที่สามารถแยกแยะขนาดของรูปภาพได้
s_BuildFileName = แทนที่ (s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath 'บันทึก
ถ้า Err.Number <> 0 แล้ว
ผิดพลาด.เคลียร์
BuildSmallPic = "ข้อผิดพลาด_03"
ออกจากฟังก์ชัน
สิ้นสุดถ้า
'--บันทึกภาพขนาดย่อลงดิสก์
-- 'ออกจากระบบอินสแตนซ์
ตั้งค่า AspJpeg = ไม่มีเลย
ถ้า Err.Number <> 0 แล้ว
BuildSmallPic = "ข้อผิดพลาด_อื่นๆ"
ผิดพลาด.เคลียร์
สิ้นสุดถ้า
BuildSmallPic = s_BuildBasePath & s_BuildFileName
สิ้นสุดฟังก์ชัน
%>