查看: 15|回复: 0

[ASP入门] ClassicASP 确实可以用 WIA来做缩略图,不用第三方插件。

[复制链接]
xuanxiao 发表于 前天 12:25 | 显示全部楼层 |阅读模式
经典 ASP 确实可以用 WIA(Windows Image Acquisition) 来做缩略图,不用额外组件。

1.只支持常见图片格式
支持:
jpg
png
bmp
gif(静态)

不支持:
webp ❌
svg ❌

2.WIA 有时会对中文路径不稳定
建议:上传路径用英文或统一转 GUID 文件名

3.权限问题(常见)
IIS 账户必须有写权限:
/upload/

否则:SaveFile 会失败

4.质量问题
WIA压缩质量一般,不能调质量参数。如果你对画质要求高用第三方组件
  1. <%
  2. Function MakeThumb(srcPath, destPath, maxWidth, maxHeight)
  3.     On Error Resume Next

  4.     Dim img, ip

  5.     Set img = CreateObject("WIA.ImageFile")
  6.     img.LoadFile srcPath

  7.     ' 原始尺寸
  8.     Dim w, h, scale
  9.     w = img.Width
  10.     h = img.Height

  11.     ' 计算缩放比例(等比)
  12.     scale = 1
  13.     If w > maxWidth Or h > maxHeight Then
  14.         If w / maxWidth > h / maxHeight Then
  15.             scale = maxWidth / w
  16.         Else
  17.             scale = maxHeight / h
  18.         End If
  19.     End If

  20.     Dim newW, newH
  21.     newW = Int(w * scale)
  22.     newH = Int(h * scale)

  23.     Set ip = CreateObject("WIA.ImageProcess")

  24.     ' 添加缩放滤镜
  25.     ip.Filters.Add ip.FilterInfos("Scale").FilterID
  26.     ip.Filters(1).Properties("MaximumWidth") = newW
  27.     ip.Filters(1).Properties("MaximumHeight") = newH
  28.     ip.Filters(1).Properties("PreserveAspectRatio") = True

  29.     ' 执行处理
  30.     Set img = ip.Apply(img)

  31.     ' 保存
  32.     img.SaveFile destPath

  33.     If Err.Number <> 0 Then
  34.         MakeThumb = False
  35.     Else
  36.         MakeThumb = True
  37.     End If

  38.     Set img = Nothing
  39.     Set ip = Nothing
  40. End Function

  41. Dim src, dest, ok

  42. src  = Server.MapPath("/upload/4.jpg")
  43. dest = Server.MapPath("/upload/thumb/4_small.jpg")

  44. ok = MakeThumb(src, dest, 300, 300)

  45. If ok Then
  46.     Response.Write "生成成功"
  47. Else
  48.     Response.Write "生成失败"
  49. End If
  50. %>
复制代码

效果如下图:
ScreenShot_2026-04-01_122546_176.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表

在线客服

售前咨询
售后咨询
服务热线
023-58418553
微信公众号