网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月13日漏签0天
comicstudio吧 关注:25,986贴子:66,601
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回comicstudio吧
>0< 加载中...

怎么把jpg转换成cst

  • 只看楼主
  • 收藏

  • 回复
  • 初音的马眼
  • CS樱木
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
焦急地等


  • 雨篷
  • CS擎天柱
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我在网上看到的,估计的安装Director软件才行,是一款多媒体编辑制作软件,但是导出是很困难的。因为没用过,无法给你答案!或许你到Director贴吧去问更合适!
以下是在网上找到的:
Macromedia Director MX 2004 CAST 导出
好吧,既然大家这么期待,就把费了我3天时间写的Macromedia Director MX 2004 CAST 导出工具透露一下。
大概大家不都知道Macromedia Director MX 2004吧,因为这是个技术贴,不懂的只管忽略吧。
1、Director是Macromedia公司开发的一套多媒体制作软件,用于创建高端交互式内容和应用程序,以供通过Macromedia Shockwave播放器在CD/DVD-ROM、公用信息导览站以及WEB上使用。简而言之就是多媒体光碟生产工具。
大概为了保护多媒体作者的劳动成果和知识产权,Director的演员(CAST)是无法导出的,即便导出,也失去了原有的部分元素,如xOffset, yOffset, Left, Top和透明度等。
为了得到一系列完整的CAST图片动画帧,我开始研究Director的剪贴板操作,因为它能自己复制粘贴,必然在系统剪贴板中留了一些特别的印记。
打开一个CST文件,复制一个CAST,查看剪贴板,文本格式的内容如下
Macromedia Director cast from:
I:\XXXX\X.cst
1 cast members 44:2ETa267.PICS frame. 1 to 44:2ETa267.PICS frame. 1

其他的内容就很复杂了,
'DIRECTOR:1000|49630
'Palette
'Device Independent Bitmap (DIB)
'DIRECTOR:1007|49830
'BITMAP (BMP)
'Unknown: 17
'Director 7.0 Cast|49756

其中我们感兴趣的就是DIRECTOR:1000和BITMAP (BMP)
获得DIRECTOR:1000数据的VB源代码如下:
Dim abFile() As Byte
abFile = GetClipboardDataArray(0, 49630)’这个数字要临时获取的,此处仅为简化
Public Function GetClipboardDataArray(ByVal hwndOwner As Long, ByVal lFormatID As Long, Optional bHTML As Boolean = False) As Byte()
Dim bData() As Byte
Dim hMem As Long
Dim lSize As Long
Dim lPtr As Long
If (OpenClipboard(hwndOwner)) Then
If (IsClipboardFormatAvailable(lFormatID) <> 0) Then
hMem = GetClipboardData(lFormatID)
If (hMem <> 0) Then
lSize = GlobalSize(hMem)
If (lSize > 0) Then
Debug.Print lSize
lPtr = GlobalLock(hMem)
If (lPtr <> 0) Then
ReDim bData(0 To lSize - 1) As Byte
CopyMemory bData(0), ByVal lPtr, lSize
GlobalUnlock hMem
GetClipboardDataArray = bData
End If
End If
End If
End If
CloseClipboard
End If
End Function
得到的字节数组HEXDUMP如下:
3D 08 00 00 02 00 04 02 00 00 00 00 00 00 00 00
00 96 00 00 00 08 00 00 00 00 00 00 00 00 00 00
00 96 00 00 00 78 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 FF FE FF FF 65 FF FF FF E7 00 00
00 A8 00 00 00 FF FF 01 00 00 00 00 00 01 00 00
□□□□……此处省略0x083D-80字节
这样就可以得到图片的坐标数据了
CopyMemory R.Width, abFile(33), 4
CopyMemory R.Height, abFile(37), 4
CopyMemory R.xOffset, abFile(61), 4
CopyMemory R.yOffset, abFile(65), 4
然后获得图片数据:
m_ClipFmt = CF_DIB
abFile = GetClipboardDataArray(0, m_ClipFmt)
这样取得的数组是一个没有文件头的BMP文件字节数组,我们需要给它加一个文件头:
Dim f&
f = FreeFile
Dim sFile$
sFile = "c:\clip.bmp"
Open sFile For Binary As f
Put #f, , &H4D42 '"BM"标志 2bytes
Dim lLen&
lLen = UBound(abFile) + 1
Put #f, , lLen ’4bytes
lLen = 0
Put #f, , lLen ’4bytes 0
lLen = &H436
Put #f, , lLen ’4bytes 0
Put #f, , abFile
Close f
测试一下:
Picture1 = LoadPicture(sFile)

效果不错吧?
这样我们就轻松的获得了一个CAST演员的图片和坐标数据。
那么演员动画如何导出呢?
这个问题其实很简单,就是批处理,每次复制一张,然后再获取。
嫌麻烦?那就试试自动化输入按键来操作Director自动复制然后获取。
首先得到Director窗口的hWnd句柄,然后:
‘把Director窗口提到前面赋予焦点
BringWindowToTop hWnd
‘输入“Ctrl-C”复制键
Call keybd_event(VK_CONTROL, 0, 0, 0)
Call keybd_event(VK_C, 0, 0, 0)
Call keybd_event(VK_C, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0)
‘获得数据
……
‘把CAST演员窗口提到前面赋予焦点
SetFocus hCast
SetActiveWindow hCast
SetForegroundWindow hCast
‘输入“向右”键选择下一帧
SendMessage hCast, WM_KEYDOWN, Win.VK_RIGHT, 0
SendMessage hCast, WM_KEYUP, VK_RIGHT, 0
如此循环,直到完整导出所有CAST演员。
请注意,千万不要侵犯别人的版权哟!


2025-05-13 20:56:31
广告
  • 雨篷
  • CS擎天柱
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
CST:Macromedia Director Cast文件


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回comicstudio吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示