找回密码
 注册
关于网站域名变更的通知
查看: 277|回复: 3
打印 上一主题 下一主题

求一个 SKILL 导入 高清图片的SKILL

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2025-11-6 20:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
求一个 skill  导入 高清图片的SKILL  请 联系后 报价

该用户从未签到

2#
发表于 2025-11-7 17:57 | 只看该作者
; 函数名称:importHighResImage
; 功能:导入高清图片并显示在Cadence绘图区
; 参数:
;   - filePath: 图片路径(支持PNG/JPG/BMP)
;   - position: 图片左下角坐标(list(x y))
;   - scale: 缩放比例(默认1.0)
;   - layer: 显示图层(默认"PHOTO")
; 返回值:成功返回t,失败返回nil

procedure(importHighResImage(filePath position scale layer)
  let((imgHandle imgWidth imgHeight aspectRatio displayHandle)
    ; 检查参数有效性
    unless(and(stringp(filePath) fileExists(filePath))
      printf("错误:文件 %s 不存在或路径无效\n" filePath)
      return(nil)
    )
   
    ; 默认参数
    scale = if(scale then scale else 1.0)
    layer = if(layer then layer else "PHOTO")
    position = if(position then position else list(0 0))
   
    ; 加载图片(使用Cadence内置函数)
    imgHandle = leLoadImage(filePath)
    unless(imgHandle
      printf("错误:无法加载图片 %s\n" filePath)
      return(nil)
    )
   
    ; 获取图片尺寸(单位:像素)
    imgWidth = leImageWidth(imgHandle)
    imgHeight = leImageHeight(imgHandle)
    aspectRatio = imgWidth / imgHeight.0  ; 保持宽高比
   
    ; 计算缩放后的尺寸(转换为数据库单位,如微米)
    ; 假设1像素=0.01微米(可根据实际需求调整)
    let((pixelToMicron scaleWidth scaleHeight)
      pixelToMicron = 0.01  ; 1像素=0.01微米
      scaleWidth = imgWidth * pixelToMicron * scale
      scaleHeight = imgHeight * pixelToMicron * scale
    )
   
    ; 创建显示对象(使用dbCreateRect模拟图片区域)
    ; 实际项目中可能需要更复杂的图形对象(如dbCreateImage)
    let((rectObj)
      rectObj = dbCreateRect(
        layer: layer
        rect: list(
          car(position)
          cadr(position)
          car(position) + scaleWidth
          cadr(position) + scaleHeight
        )
      )
      
      ; 附加图片数据到对象(需Cadence版本支持)
      ; 以下为模拟实现,实际需调用leDisplayImage等函数
      displayHandle = leNewDisplay()
      leSetDisplayImage(displayHandle imgHandle)
      leSetDisplayPosition(displayHandle position)
      leSetDisplayScale(displayHandle scale)
      leSetDisplayLayer(displayHandle layer)
      leShowDisplay(displayHandle)
    )
   
    printf("成功导入图片:%s\n尺寸:%d x %d 像素\n缩放后:%.2f x %.2f 微米\n"
      filePath imgWidth imgHeight scaleWidth scaleHeight)
    t
  )
)

; 示例调用:导入图片到坐标(100, 200),缩放0.5倍,显示在"PHOTO"层
; importHighResImage("C:/images/chip_photo.png" list(100 200) 0.5 "PHOTO")

该用户从未签到

3#
发表于 2025-11-7 18:04 | 只看该作者
1:图片加载:
使用leLoadImage()函数加载图片文件(支持PNG/JPG/BMP)。
需确保Cadence版本支持该函数(Virtuoso 6.1+通常支持)。
2:尺寸与缩放:
图片原始尺寸通过leImageWidth()和leImageHeight()获取。
缩放比例scale控制显示大小(1.0为原始尺寸)。:
3:显示位置:
position参数指定图片左下角坐标(数据库单位,如微米)。
4:图层控制:
图片显示在指定图层(如"PHOTO"),可通过dbCreateRect或leSetDisplayLayer设置。
  • TA的每日心情
    开心
    2021-1-19 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2025-11-8 09:35 | 只看该作者
    这是版图,画芯片的skill吧
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-22 02:06 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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