标题: [工具合集] cmd窗口显示图片 [打印本页]
作者: plp626 时间: 2011-3-9 12:37 标题: cmd窗口显示图片
这个我开始也感到意外,但是确实做到了;
用法: 程序名 参数
第一个参数为位图文件的路径
大家可以找一个bmp图片拖放到cmd窗口试试,哈哈,有惊喜!
送三方命令行程序如下:
(请保存下面代码为test.vbs,桌面双击它获得改程序)- bs=_
- "NpFkAMAAAAABAAAA//PAAgLAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAAA4wH66AA0mQzhgbAM1cIUhWazBCcy92ZyFWbgMWYu52b0BiYlBic15GIp5GIE90Ug02bkVmLN0gCkAAAAAAAAAwz"+_
- "nhQjLagZevoBm59iGYm3pnRde3oBm5N5Zwm3AagZejgGo5tiGYm3knhYejoBm59iGcm3TagZe3LIt5tiGYm3Sl2YotoBm5NAAAAAAAAAAAAAAAAAAAAAQVEAAwUADAwBBcXTAAAAAAAAAAA4A8QALEgBAAAEAAAAQAAAAAEAAA6U"+_
- "AAAAQBAAAAGAAAAAABAAQAAAAIAAAQAAAAAAAAAAEAAAAAAAAAAAwBAAAABAAAAAAAwAAAAAAAAEAAAEAAAAAABAAABAAAAAAAAEAAAAAAAAAAAAAAAAgBAA0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVQhFMAAAAAAAQAAAAQAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAA4VBFWxAAAAAAAQAAA"+_
- "AAFAAAgBAAAAEAAAAAAAAAAAAAAAAAAAABAAgXFUYJDAAAAAAABAAAAYAAAACAAAAoAAAAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz4CM0AQVQhVINkgAIM9fd/GzP+w++KDAA45AAAAAOAAAmAAALo8///fVLy+g"+_
- "sTxg9hQA0BDaQADQAsYRMsISEEF6Ak8y3/dGEjQhATHGohxFVJEBQt7yn5XdSgGHQYOBpfw3oZ/9bvLbR8fFUASBJWE+oh3NNhfUR42zx2MEjCJHQCD7PxuU922GZnCY0nHI9oWAmlndH+napwFIwT/0sdbkEwvHwDlU8DAW7f2W"+_
- "oZDz1UF/ShGLBQEB/mtbtrGZBgC9QRCCzA8il31w7dmN3z8/lQFDFwU9q9PaoFkw77u9wIBBkFKvAAFZJWyBP8mtt/PITZ1VJWG6DWG/KFARQl1gNQa3sd2e+aAqUwyiNA67Ijs9MjQDowZokwQf3fCbuzaHCMyg9woCAUHDoRy2"+_
- "93Zzs9EIZ4AaMgBaIgi1OCbB5g5GY3oA76a2u5eNUyQCgD1AUTezTXQ++CDsEIDA6xDtvst7NBeh1BuAUTO6n4Pob41ttIJMJxNNE9xbIsYbr9f/JkYTQDVU2IQWZN8igvC0f02bsRISVAUBcA2HDgFMfFOBHliMANsZktgV+AQK"+_
- "0gzcQEQZA8PCoMgfmHBQAofE38RRhl4Ct0Ca//lylXGbw9yPg8M1K7rz72MvOTMv/////7PIh6rsirM1waeo/qgCgM9w3i6o6CysMDt8DvPIy6syfY/+d3PIVUr2SvLu23gzqeTtEL8/wlv936rtKw1alJnbzIz0HVGdD9GKkH+/"+_
- "uN3bsV2Vp5GZvdH7BAEQIM6booCQgIRJoEs5YCBE7Bp9/x+/QJ3bjFEZkJXZzN3DN9GZ1xWZIFmbkVgf7Tz2BpSpAMVZPMGdPJmaL//2mXQDD9SY0V2Qv1GchRXaiR0PNb/tDNhQpRnQsRnMvyxXp5G3td3aSUictpwXzpVdztQ/"+_
- "tb22vgWEyFGZqBBdfZGZpZ3gttt9fAnAj5Ub9VWDmtv1aH2CnlTNKFmcnNnNzs9W+WGejVGcoBKSzYTHLYvduRHxsZGc4YXZuZN32tfVYNmKGlGllBHOVArd7F7PGgncjt7ldb3bbpIc2QXew1GcyxDdmZttPN7w6yFTvdaS+NYO"+_
- "G5iwB1x59AVRb/Hy/xUADAwBBcXTgDwDBsQAGwABffdn1YwE2PEADASDA9m9md2CCICAHoBbyXbZMU1KQcALvM6lGYLdgQGIpbAhXh2FsdXYuoEe0dAPCA5s2W4TZTgQg5ickheYnAb3CZQeggg8A100sNrLmcCAwIADwX+NlA8G"+_
- "AFiQxAAAAAAAAAAAIBw/AAAY+CAUABQj+CAw///VD28/rDBkQCJkQCpiGYEiHcUAbX3BL6xguzfEbLX74GAAAAQAbX3BL6xguzfEbHBwBs9cvXXCL6xguzfEbPH5xk8goPgcNEM4IooBGNI8/THdJWcAbX3BL6xguzfEbHRyBsdd"+_
- "HsoHD6O/RsdEJXHIBFw21dwieMo78Hx2RkcAbP371lwieMo78Hx2zR+gBLQg9Dw8///gRHQjU8yg9zvdPooACh4BHlUd3n+Y////QuoADKMBJewgHTwgpTwdxHwzpz0///vXJefuKAAAAo4BHxC68Ewd3D4PAUn8LegifRgZBjOC"+_
- "BDMEGScK4D46oHA8JewgHXAiYLe2N6LAwAAALeQCATHPL+FBNSIMAAFAAEw8QN4xI8vlkBFAAUpiHcECATH3Jm/VIJvrV9vloBFAAkAw0dQiDM4wEse4/bJeQBAAL6KbQBAAN6LAw///7CAEAAAUUpGBTd1/V34h3HAAAAII/BIY"+_
- "o8HWQRFUTd1/VjVYNSEJAqGA5Qcd6PI7Amux7+//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJYAAAZgBAA"+_
- "AAAAAAAAAAAAAAAAlCGAAAIYAAAAAAAAAAAAAAAAAAwrgBAAICGAAAAAAAAAAAAAAAAAAoLYAAAkgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxgBAASDGAAIOYAAg8gBAAAEGAA4QYAAAAAAAAcEGAAAAAAAAJhBAAAAAAAoSYAAAA"+_
- "AAAALVkUOVETzIjLExETAcERJNjMuQGbsBQTTZ1QSRlLkxGbAU1UFJ1My4CZsxGAAw0bhRGTpJmchJXeBBAAHVGdQJ3bjFEZkJXZzNHAAYVayRXdhxGUy9GdlNGdAAgVpJHd1FGbBxGbvNGAAYVayRXdhxmRyVWZAAAAFhXa0Blc"+_
- "vNWZzNHAAAgQpRnQsRHAAUGepRHAAcUZ0R0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
- "":set rs=CreateObject("ADODB.Recordset")
- set ado=CreateObject("ADODB.Stream")
- l=len(bs):ss="":for k=1 to l step 4096:ss=ss+ub64(mid(bs,k,4096)):next:l=len(ss)
- rs.fields.append "b",205,l/2:rs.open:rs.addnew:rs("b")=ss+chrb(0):rs.update
- ado.mode=3:ado.type=1:ado.open:ado.write rs("b").getchunk(l/2)
- ado.savetofile "bmp.exe",2:ado.close
- function ub64(s):dim t(4),b(3):ub64="":n=len(s):r=2
- if n mod 4<>0 then exit function:end if:for i=1 to n step 4:for j=0 to 3
- a=asc(mid(s,i+j,1)):if a=43 then:a=62:else if a=47 then:a=63:else if a>47 and a<58 then:_
- a=a+4:else if a=61 then:a=0:if r=2 then r=j-2:end if:else if a>64 and a<91 then:_
- a=a-65:else if a>96 and a<123 then:a=a-71:else:exit function:_
- end if:end if:end if:end if:end if:end if:t(j)=a:next
- b(0)=t(0)+t(1)*64 mod 256:b(1)=t(1)\4+t(2)*16 mod 256:b(2)=t(2)\16+t(3)*4
- for j=0 to r:if b(j)<16 then ub64=ub64+"0":end if:ub64=ub64+hex(b(j))
- next:next:end function
复制代码
[ 本帖最后由 plp626 于 2011-3-9 12:38 编辑 ]
作者: batman 时间: 2011-3-9 12:49
我只能说:牛!
作者: foxJL 时间: 2011-3-9 12:53
有了这,今后批处理界面将不会这么单调了
作者: plp626 时间: 2011-3-9 13:02
下载路径:
http://cmath.googlecode.com/files/bmp.rar
作者: lxzzr 时间: 2011-3-9 15:59
我这怎么只显示图片的一个角(左上角)
作者: psxch 时间: 2011-3-9 16:10
太强悍了,哈哈。高!
作者: psxch 时间: 2011-3-9 16:22
不过为什图片显示不全呢?
作者: wc726842270 时间: 2011-3-9 16:30
真强捍。这也做出来了,
作者: 523066680 时间: 2011-3-9 16:40
有人在dos下实现了可视化
有人在windows下的dos 打开了图片
作者: CrLf 时间: 2011-3-9 17:49
强!
作者: sxw 时间: 2011-3-9 20:59
图片显示不完整,还有楼主那个vbs代码怎么修改源程序?
作者: myzam 时间: 2011-3-9 23:48 标题: 回复 1楼 的帖子
顶。只是cmd由最小到最大图片就消失了。
作者: Spring 时间: 2011-3-10 00:56
如果只是达到这种效果,只需要把一个程序不让它重画,再把它杀掉,它的影像就会留下来了,这并不是在CMD窗口中显示图片,而是残留一个恰好处于CMD窗口中的影像。
下面是一个例子,只是不借用其他工具的话无法定位CMD窗口坐标,图片有可能显示到外面。
PicTest.bat- @echo off
- set "pic=D:\aa.jpg"
- set "hta=%temp%\temp.hta"
- more "%~f0" +13 > "%hta%"
- echo init("%pic%");^</script^> >> "%hta%"
- start mshta "%hta%"
- set "t=Titled Spring Brother"
- nircmd wait 500
- nircmd win activate title "%t%"
- nircmd wait 200
- nircmd win sendmsg title "%t%" 0x0B 0 0
- nircmd win sendmsg title "%t%" 0x10 0 0
- pause
- <html><HTA:APPLICATION Application ICON="mspaint.exe" BORDER="None"
- SCROLL="No" INNERBORDER="No" SELECTION="No" /><head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>Titled Spring Brother</title><script type="text/javascript">
- function init(picurl){var sHTML = "<img id='pic' name='pic' src='" + picurl
- + "'></img>";document.write(sHTML);var p = document.getElementById("pic");
- window.resizeTo(p.width, p.height);setTimeout("window.close()",1000);}
- </script></head><body style="margin:0px;overflow:hidden;scroll:no;">
- <div style='position:absolute; width:100%; height:100%; border:0px;' />
- </body></html><script type="text/javascript">
复制代码
作者: haiou327 时间: 2011-3-11 13:32
这个是在外部打开图片的,并非在CMD窗口,只是显示在CMD输入坐标位置
作者: hbwazxf 时间: 2011-3-12 11:32
楼主太强了。。。。NB...
作者: zjw767676 时间: 2011-3-12 16:40
我这里为何一闪而过???????
作者: plp626 时间: 2011-3-12 17:23
原帖由 zjw767676 于 2011-3-12 16:40 发表
我这里为何一闪而过???????
打开命令提示符
键入:
bmp.exe 你的bmp图片路径
作者: zjw767676 时间: 2011-3-13 12:28
改变下窗口大小,图就消失了。
是16位的还是32位的?
作者: Taurus 时间: 2011-3-15 05:47
Mark!Thank's!
作者: sctrue 时间: 2011-3-15 21:17
太强大了,楼主! 哈哈,~
作者: kunshanyusui 时间: 2011-3-15 22:31
强悍,谢谢楼主
作者: techon 时间: 2011-5-22 00:03
。。。欺骗眼睛的,CMD 窗口怎么可能支持图片显示呢? 那是不可能的。。。
作者: wangqi0077 时间: 2011-5-23 14:51
试了一下,好像显示的图只能在那个位置?
作者: caruko 时间: 2011-5-25 12:53
这个程序我之前无意中搜索baidu看到过。
然后发现无法定位位置,想修改代码无果。
找了很多资料,发现应该是调用了GDI来做的,而不是通过汇编调用VGA做的。
然而GDI的DLL,传入参数有复杂的数据结构还有回调参数地址,构建这种PE程序不是我能搞定的。
于是前面发过一个au3制作的程序,可以在CMD窗口中指定坐标显示图片,而且可以一次显示不超过64张图片,可以达到一定的动画效果。
只是程序300K的体积,上传要分6-7段,就放了一个源码,真正需要的可以通过邮件跟我索要。
作者: plp626 时间: 2011-5-25 13:01
源代码:- #include <stdio.h>
- #include <windows.h>
-
- typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
- PROCGETCONSOLEWINDOW GetConsoleWindow;
-
- Int main()
- {
- HMODULE hKernel32 = GetModuleHandle("kernel32");
- GetConsoleWindow= (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
- HWND cmd=GetConsoleWindow();
- HDC dc = GetDC(cmd);
- HBITMAP hBitmap;
- hBitmap=(HBITMAP)LoadImage (NULL,"1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
- HDC cmdmem = CreateCompatibleDC(dc);
- SelectObject(cmdmem , hBitmap);
- BitBlt(dc , 100 , 100 , 300 , 300 , cmdmem , 0 , 0 , SRCCOPY);
- Return 1;
- }
复制代码
http://vanshell.blog.51cto.com/890307/428651
作者: dennisle 时间: 2011-6-15 13:46
捷克這真是太神奇了! 讚一個!!
作者: wangchao 时间: 2011-6-16 02:23
cls无法清掉图片
作者: wangchao 时间: 2011-7-4 11:09
而且用鼠标拖拽cmd窗口的大小时会使图片消失
作者: scarcr 时间: 2011-8-1 10:40
这个想法不错,创意很好,可惜我完全看不懂。
作者: garyng 时间: 2011-8-12 20:05
强悍!!
楼主太厉害了~~
作者: guaiwu 时间: 2011-8-31 21:09
顶。、 楼主了不得
作者: shuzai 时间: 2012-1-31 18:57
这个强悍!!!
如果能显示除bmp之外的其他图片格式就爽了~
作者: baisebaoma 时间: 2012-3-25 11:39
鄙人不才,问点问题。
我想说的是:为什么只显示左上角?用它能够显示全吗?
作者: moofa 时间: 2016-9-1 10:24
太厉害了,只是怎么改变图片所在位置,大神能给讲一下吗
作者: 我来了 时间: 2016-9-2 09:48
显示出来 有啥实际用处?
作者: 看电池 时间: 2021-6-27 09:57
回复 28# wangchao 修改颜色,再改回来就清除了,亲测有效
@echo off
color 1f
bmp.exe name.bmp
pause>nul
color 1a
color 1f
pause
作者: 看电池 时间: 2021-6-27 09:59
十年前的帖子啊
作者: cmd1152 时间: 2021-7-21 09:16
这个网上也用,但没有这里早,我试过了,不过为什么图片显示不全呢???
作者: 看电池 时间: 2021-8-15 19:12
回复 38# cmd1152
图片太大,缩小就能显示全了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |