公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

0 投票
1.1k 浏览

这有个图床,不需要配置用户信息就可以直接使用,只有一个必要参数,但不会使用,我甚至怀疑mma无法调用啊,哪位成功后给个示例

用户: Lozmlve*永 (1.2k 分)
修改于 用户:Lozmlve*永
原来做这个免费图床的前辈,就是把 t.tt 卖给老罗的。
通常的使用mma内建的命令上传图片有两个明显缺点:1.必须打开mma手动执行;2.mma执行速递太低,除去上传时间,相当部分时间被wolfscript.exe占用了(如果使用这个脚本解释器执行命令),这是鄙人给出的AHK代码,只需要一个快捷键比如Ctrl+I就能一键从剪贴板获得上传地址,其他统统后台执行,抛弃mma的依赖,速度快,时间基本取决于上传服务器的接受时间:
en_uploadImg(){
    if (!DllCall( "IsClipboardFormatAvailable","UInt",2)){
        MsgBox,No image in clipborad!
        return
    }
    SetWorkingDir % A_ScriptDir
    FileDelete tp.jpg
   while (!FileExist("temp.jpg") and 20*a_index<60000){
    _cmd(chr(34) "E:\Program Files\IrfanView\appGreen\i_view32.exe" chr(34)  " /clippaste /convert=temp.jpg",1)
        sleep 20
    }
   RegExMatch(_cmd("E:\devlop\BAT\lib\curl\curl.exe" " -F smfile=@temp.jpg https://sm.ms/api/upload",1),"O)(https:.*?\.jpg)",rUrl)
   FileDelete tp.jpg
   return ((rUrl:=StrReplace(rUrl[1],"\/","/"))?rUrl:"Error in uploading.")
}
以下是演示地址:
https://ooo.0o0.ooo/2017/05/02/59083fb90a487.jpg
https://ooo.0o0.ooo/2017/05/02/590840749ecae.gif

1个回答

+1 投票
 
已采纳

■上传代码:

image = "E:/yourPic.jpg";(*本地图片地址*)
url = "https://sm.ms/api/upload";(*图床上传地址*)
req = HTTPRequest[
   url, <|"Body" -> {"smfile" -> <|"Content" -> File[image], 
        "Name" -> FileNameTake[image]|>}|>];(*上传请求,其中"Name"不是必需的*)
res = URLRead[req, "Body"];(*上传,返回响应的JSON字符串*)
assoc = ImportString[res, "RawJSON"](*转成Association格式*)

■一些可能用到的操作:

图片地址:

assoc["data"]["url"](*已经上传图片的URL*)

删除图片:

ImportString[URLRead[assoc["data"]["delete"], "Body"]](*删除已经止传的图片*)

下面是给出的,不需要导出图片,直接上传在Mma内生成的图像的方法

img = Image[RandomReal[1, {100, 100}]];
req = HTTPRequest[
   "https://sm.ms/api/upload", <|Method -> "POST", 
    "Body" -> {"smfile" -> <|"Content" -> ExportString[img, "PNG"], 
        "MIMEType" -> "image/png", "filename" -> "tmp.png"|>}|>];
res = URLRead[req, "Body"];
assoc = ImportString[res, "RawJSON"];

CopyToClipboard[assoc["data"]["url"]](*图片地址复制到剪切板*)

 

用户: 野鹤 (5.1k 分)
修改于 用户:野鹤
...