美文网首页
Markdown 实现粘贴图片(ahk)

Markdown 实现粘贴图片(ahk)

作者: 止境_af83 | 来源:发表于2017-04-17 13:39 被阅读0次

    闲谈

    博主使用的Markdown编辑器是 Cmd Markdown 每次粘贴截图都是非常的麻烦:

    将截图保存到本地 --> 上传到服务器 --> 引用链接

    当然,也可以使用 Cmd Markdown 的服务器,不过要会员: 99/年。
    作为学生的我现在是能省就省(毕竟又不是我自己的钱)

    最近看到一篇文章,简化markdown写作中的贴图流程,不过是 mac系统 的。其中有提到一个关键词 AutoHotKey ,这是windows下使用快捷键的。

    接下来的几天开始研究 AutoHotKey,发现这种脚本还是比较好玩的,不但是快捷键、桌面绘图和控件都有相关的库。

    现在博主主要的问题还是在如果把剪切板的截图转换成图片,找了很久,还是没有找到相关的资料,本来是想实在找不到,就自己写一个截图工具(从根本上截图问题),那是还是太天真了。虽然到最后可以实现 截图,但是不想QQ截图那样,在截图的时候,桌面上多了一层图层,在截图的时候不会点击到图层下面的文件、内容的。博主的这个还是会有点击、和拖动事件的比较麻烦。

    在偶然的情况下,发现了一个非常有用的函数 <code>Gdip_CreateBitmapFromClipboard()</code>,一下了解决了问题。这下可以直接从获取剪切板的截图了。

    代码

    仓库:github地址

    32位系统用 Gdip.ahk
    64为系统用 Gdip_All.ahk

    createPic(PicPath)
    {
        pToken := Gdip_Startup() ; Start gdi+
            ; pBitmapAlpha := Gdip_CreateBitmapFromFile(PicPath)
            ;pBitmapAlpha := Gdip_BitmapFromScreen(0, "")
            ;pBitmapAlpha := Gdip_BitmapFromScreen(x "|" y "|" width "|" height)
            ;从剪切板直接获取位图
            pBitmapAlpha := Gdip_CreateBitmapFromClipboard()
            ;图片的宽度
            ImgWidth := Gdip_GetImageWidth(pBitmapAlpha)  ; 获取宽度,高度,可省略
            ;图片的高度
            ImgHeight := Gdip_GetImageHeight(pBitmapAlpha)
            ;保存图片到指定的位置
            Gdip_SaveBitmapToFile(pBitmapAlpha, PicPath,"255") ;第三个参数控制图片质量
            Gdip_DisposeImage(pBitmapAlpha)
            
        Gdip_Shutdown(pToken) ; close gdi+
        Traytip, 截图完毕:, 宽: %ImgWidth% 高: %ImgHeight%`n保存为: %PicPath%
    }
    
    ;按ctrl + F2 发布图片
    ^F2::
      run,cmd /c cd /D %hexoPath% & hexo g & hexo d 
    return
    
    ;按ctrl + F1 保存截图,并 输入 markdown 的图片格式
    ^F1::
        ; 保存图片的位置和格式
        FormatTime, currentFilenameFormat, A_Now, %filenameFormat%
        savePath := PicPath . currentFilenameFormat . "." . imageFormat
        saveHttpPath := httpPath . currentFilenameFormat . "." . imageFormat
       createPic(savePath)
       clipboard := "![](" . saveHttpPath . ")" 
       send, ^v
       if  isPushWhenSave
           send, ^n
    return
    
    

    演示

    image

    相关文章

      网友评论

          本文标题:Markdown 实现粘贴图片(ahk)

          本文链接:https://www.haomeiwen.com/subject/padtzttx.html