Board logo

标题: [工具合集] cmd窗口显示图片 [打印本页]

作者: plp626    时间: 2011-3-9 12:37     标题: cmd窗口显示图片

这个我开始也感到意外,但是确实做到了;

用法: 程序名 参数

第一个参数为位图文件的路径

大家可以找一个bmp图片拖放到cmd窗口试试,哈哈,有惊喜!

送三方命令行程序如下:
(请保存下面代码为test.vbs,桌面双击它获得改程序)
  1. bs=_
  2. "NpFkAMAAAAABAAAA//PAAgLAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYDAAA4wH66AA0mQzhgbAM1cIUhWazBCcy92ZyFWbgMWYu52b0BiYlBic15GIp5GIE90Ug02bkVmLN0gCkAAAAAAAAAwz"+_
  3. "nhQjLagZevoBm59iGYm3pnRde3oBm5N5Zwm3AagZejgGo5tiGYm3knhYejoBm59iGcm3TagZe3LIt5tiGYm3Sl2YotoBm5NAAAAAAAAAAAAAAAAAAAAAQVEAAwUADAwBBcXTAAAAAAAAAAA4A8QALEgBAAAEAAAAQAAAAAEAAA6U"+_
  4. "AAAAQBAAAAGAAAAAABAAQAAAAIAAAQAAAAAAAAAAEAAAAAAAAAAAwBAAAABAAAAAAAwAAAAAAAAEAAAEAAAAAABAAABAAAAAAAAEAAAAAAAAAAAAAAAAgBAA0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  5. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVQhFMAAAAAAAQAAAAQAAAAAAAAAABAAAAAAAAAAAAAAAAAAAgAAA4VBFWxAAAAAAAQAAA"+_
  6. "AAFAAAgBAAAAEAAAAAAAAAAAAAAAAAAAABAAgXFUYJDAAAAAAABAAAAYAAAACAAAAoAAAAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  7. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  8. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  9. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz4CM0AQVQhVINkgAIM9fd/GzP+w++KDAA45AAAAAOAAAmAAALo8///fVLy+g"+_
  10. "sTxg9hQA0BDaQADQAsYRMsISEEF6Ak8y3/dGEjQhATHGohxFVJEBQt7yn5XdSgGHQYOBpfw3oZ/9bvLbR8fFUASBJWE+oh3NNhfUR42zx2MEjCJHQCD7PxuU922GZnCY0nHI9oWAmlndH+napwFIwT/0sdbkEwvHwDlU8DAW7f2W"+_
  11. "oZDz1UF/ShGLBQEB/mtbtrGZBgC9QRCCzA8il31w7dmN3z8/lQFDFwU9q9PaoFkw77u9wIBBkFKvAAFZJWyBP8mtt/PITZ1VJWG6DWG/KFARQl1gNQa3sd2e+aAqUwyiNA67Ijs9MjQDowZokwQf3fCbuzaHCMyg9woCAUHDoRy2"+_
  12. "93Zzs9EIZ4AaMgBaIgi1OCbB5g5GY3oA76a2u5eNUyQCgD1AUTezTXQ++CDsEIDA6xDtvst7NBeh1BuAUTO6n4Pob41ttIJMJxNNE9xbIsYbr9f/JkYTQDVU2IQWZN8igvC0f02bsRISVAUBcA2HDgFMfFOBHliMANsZktgV+AQK"+_
  13. "0gzcQEQZA8PCoMgfmHBQAofE38RRhl4Ct0Ca//lylXGbw9yPg8M1K7rz72MvOTMv/////7PIh6rsirM1waeo/qgCgM9w3i6o6CysMDt8DvPIy6syfY/+d3PIVUr2SvLu23gzqeTtEL8/wlv936rtKw1alJnbzIz0HVGdD9GKkH+/"+_
  14. "uN3bsV2Vp5GZvdH7BAEQIM6booCQgIRJoEs5YCBE7Bp9/x+/QJ3bjFEZkJXZzN3DN9GZ1xWZIFmbkVgf7Tz2BpSpAMVZPMGdPJmaL//2mXQDD9SY0V2Qv1GchRXaiR0PNb/tDNhQpRnQsRnMvyxXp5G3td3aSUictpwXzpVdztQ/"+_
  15. "tb22vgWEyFGZqBBdfZGZpZ3gttt9fAnAj5Ub9VWDmtv1aH2CnlTNKFmcnNnNzs9W+WGejVGcoBKSzYTHLYvduRHxsZGc4YXZuZN32tfVYNmKGlGllBHOVArd7F7PGgncjt7ldb3bbpIc2QXew1GcyxDdmZttPN7w6yFTvdaS+NYO"+_
  16. "G5iwB1x59AVRb/Hy/xUADAwBBcXTgDwDBsQAGwABffdn1YwE2PEADASDA9m9md2CCICAHoBbyXbZMU1KQcALvM6lGYLdgQGIpbAhXh2FsdXYuoEe0dAPCA5s2W4TZTgQg5ickheYnAb3CZQeggg8A100sNrLmcCAwIADwX+NlA8G"+_
  17. "AFiQxAAAAAAAAAAAIBw/AAAY+CAUABQj+CAw///VD28/rDBkQCJkQCpiGYEiHcUAbX3BL6xguzfEbLX74GAAAAQAbX3BL6xguzfEbHBwBs9cvXXCL6xguzfEbPH5xk8goPgcNEM4IooBGNI8/THdJWcAbX3BL6xguzfEbHRyBsdd"+_
  18. "HsoHD6O/RsdEJXHIBFw21dwieMo78Hx2RkcAbP371lwieMo78Hx2zR+gBLQg9Dw8///gRHQjU8yg9zvdPooACh4BHlUd3n+Y////QuoADKMBJewgHTwgpTwdxHwzpz0///vXJefuKAAAAo4BHxC68Ewd3D4PAUn8LegifRgZBjOC"+_
  19. "BDMEGScK4D46oHA8JewgHXAiYLe2N6LAwAAALeQCATHPL+FBNSIMAAFAAEw8QN4xI8vlkBFAAUpiHcECATH3Jm/VIJvrV9vloBFAAkAw0dQiDM4wEse4/bJeQBAAL6KbQBAAN6LAw///7CAEAAAUUpGBTd1/V34h3HAAAAII/BIY"+_
  20. "o8HWQRFUTd1/VjVYNSEJAqGA5Qcd6PI7Amux7+//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  21. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJYAAAZgBAA"+_
  22. "AAAAAAAAAAAAAAAAlCGAAAIYAAAAAAAAAAAAAAAAAAwrgBAAICGAAAAAAAAAAAAAAAAAAoLYAAAkgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxgBAASDGAAIOYAAg8gBAAAEGAA4QYAAAAAAAAcEGAAAAAAAAJhBAAAAAAAoSYAAAA"+_
  23. "AAAALVkUOVETzIjLExETAcERJNjMuQGbsBQTTZ1QSRlLkxGbAU1UFJ1My4CZsxGAAw0bhRGTpJmchJXeBBAAHVGdQJ3bjFEZkJXZzNHAAYVayRXdhxGUy9GdlNGdAAgVpJHd1FGbBxGbvNGAAYVayRXdhxmRyVWZAAAAFhXa0Blc"+_
  24. "vNWZzNHAAAgQpRnQsRHAAUGepRHAAcUZ0R0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  25. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+_
  26. "":set rs=CreateObject("ADODB.Recordset")
  27. set ado=CreateObject("ADODB.Stream")
  28. l=len(bs):ss="":for k=1 to l step 4096:ss=ss+ub64(mid(bs,k,4096)):next:l=len(ss)
  29. rs.fields.append "b",205,l/2:rs.open:rs.addnew:rs("b")=ss+chrb(0):rs.update
  30. ado.mode=3:ado.type=1:ado.open:ado.write rs("b").getchunk(l/2)
  31. ado.savetofile "bmp.exe",2:ado.close
  32. function ub64(s):dim t(4),b(3):ub64="":n=len(s):r=2
  33. if n mod 4<>0 then exit function:end if:for i=1 to n step 4:for j=0 to 3
  34. 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:_
  35. 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:_
  36. a=a-65:else if a>96 and a<123 then:a=a-71:else:exit function:_
  37. end if:end if:end if:end if:end if:end if:t(j)=a:next
  38. 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
  39. for j=0 to r:if b(j)<16 then ub64=ub64+"0":end if:ub64=ub64+hex(b(j))
  40. 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

强!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
作者: 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
  1. @echo off
  2. set "pic=D:\aa.jpg"
  3. set "hta=%temp%\temp.hta"
  4. more "%~f0" +13 > "%hta%"
  5. echo init("%pic%");^</script^> >> "%hta%"
  6. start mshta "%hta%"
  7. set "t=Titled Spring Brother"
  8. nircmd wait 500
  9. nircmd win activate title "%t%"
  10. nircmd wait 200
  11. nircmd win sendmsg title "%t%" 0x0B 0 0
  12. nircmd win sendmsg title "%t%" 0x10 0 0
  13. pause
  14. <html><HTA:APPLICATION Application ICON="mspaint.exe" BORDER="None"
  15. SCROLL="No" INNERBORDER="No" SELECTION="No" /><head>
  16. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  17. <title>Titled Spring Brother</title><script type="text/javascript">
  18. function init(picurl){var sHTML = "<img id='pic' name='pic' src='" + picurl
  19. + "'></img>";document.write(sHTML);var p = document.getElementById("pic");
  20. window.resizeTo(p.width, p.height);setTimeout("window.close()",1000);}
  21. </script></head><body style="margin:0px;overflow:hidden;scroll:no;">
  22. <div style='position:absolute; width:100%; height:100%; border:0px;' />
  23. </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

源代码:
  1. #include <stdio.h>
  2. #include <windows.h>
  3. typedef HWND (WINAPI *PROCGETCONSOLEWINDOW)();
  4. PROCGETCONSOLEWINDOW GetConsoleWindow;
  5. Int main()
  6. {
  7.        HMODULE hKernel32 = GetModuleHandle("kernel32");
  8.        GetConsoleWindow= (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow");
  9.        HWND cmd=GetConsoleWindow();
  10.        HDC dc = GetDC(cmd);
  11.        HBITMAP hBitmap;
  12.        hBitmap=(HBITMAP)LoadImage            (NULL,"1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
  13.        HDC cmdmem = CreateCompatibleDC(dc);
  14.        SelectObject(cmdmem , hBitmap);
  15.        BitBlt(dc , 100 , 100 , 300 , 300 , cmdmem , 0 , 0 , SRCCOPY);
  16.        Return 1;
  17. }
复制代码
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://www.bathome.net/) Powered by Discuz! 7.2