多媒体大作业

上传人:无力****y 文档编号:112370975 上传时间:2022-06-22 格式:DOCX 页数:50 大小:913.91KB
返回 下载 相关 举报
多媒体大作业_第1页
第1页 / 共50页
多媒体大作业_第2页
第2页 / 共50页
多媒体大作业_第3页
第3页 / 共50页
点击查看更多>>
资源描述
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第50页 共50页 南京工程学院多媒体编程基础课程综合作业说明书题 目 多媒体综合设计 班 级 K软件测试101 学 生 姓 名 贺 稳 学 号 240101825 2013 年 6月 22日一程序功能与设计思路(必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上)1、 主界面1.1 主界面实现功能说明如下: 菜单项包括文字处理、绘图、图像、音频视频,帮助,点击进入各个功能界面 动画显示小蛇吐信1.2 界面效果显示:1.3 主界面设计思路:首先创建一个基于对话框的对话框的MFC应用程序,然后在资源里添加五个菜单栏和四个对话框并将其对应连接起来,在主对话框菜单栏中添加四个菜单选项与四个子对话框链接,以实现点击菜单项跳出对应的对话框。 其功能结构如下:主界面 帮助音频视频播放 图像处理 绘图文字处理2、 文字处理 2.1 文字实现功能说明如下: 菜单项包括文字渐变、文字旋转、颜色背景颜色显示、文字镂空,点击菜单项将显示各个功能。2.2 界面效果显示: 2.3 文字处理功能结构图:文字处理倾斜文字镂空文字颜色渐变文字旋转3、绘图工具3.1 绘图工具实现功能如下: 画圆 画椭圆 画矩形3.2 功能界面效果显示4、 图像处理4.1 图像处理实现功能如下: 从本地磁盘打开文件 图片去色 浮雕效果 颜色拾取 锐化效果 颜色取反4.2 功能界面效果显示.3图像处理功能结构图: 图片处理 镂空取反 去色 锐化打开5、 音频视频播放5.1音频视频功能实现: 从本地磁盘添加音频视频文件 双击播放音频视频文件 点击播放按钮播放文件 点击上一个、下一个选择当前文件的上一个、下一个文件5.2 功能界面显示5.3 音频视频播放功能结构图:音频视频播放添加文件控制下一个上一个播放二相关原理知识介绍1输出指定字体定义系统以外的字体,可以调用函数GreateFont自行创建 HFont=CreateFont (int nHeight, /字体高度,0采用系统缺省值,使用逻辑单位 int nWidth, /字体宽度,取0则由系统根据高宽比取最佳值 int nEscapement, /每行文字相对于页底的角度,单位为0.1度 int nOrienation, /每个文字相对于页底的角度,单位为0.1度 DWORD nWeight, /字体粗细度,范围为01000 DWORD Dwltalic, /如果要求字体倾斜,则取非零 DWORD dwUnderline,/如果要求下划线,则取非零 DWORD dwStrikeout,/如果要求中划线,则取非零 DWORD dwCharset, /字体所属字符集 DWORD dwOutputPrecision,/输出精度,一般取缺省值OUT_DEFAULT_PRECIS DWORD dwClipPrecision, /剪裁精度,常取缺省值CLIP_DEFAULT_PRECIS DWORD dwQuality, /输出质量,一般取缺省值DEFAULT_QUALITY DWORD dwPitchAndFamily, /字体名) 2.文本输出常用的文本输出函数TextOut原型如下:BOOL TextOut( HDC hdc, int X, int Y, /X, Y为用户区中字符串的起始坐标 LPCTSTR lpstring, /lpstring为显示的字符串 int nCount /nCount为字符串中的字节数);2、简单绘图工具2.1 绘图的基本方法实现简单图形的绘制,绘图功能中,有绘制直线、矩形、椭圆、涂鸦等。用到的方法如下:CPoint MoveTo(int x,int y); /直线起点CPoint LineTo(int x,int y); /直线终点BOOL Rectangle(int x1,int y1,int x2,int y2); /绘制矩形BOOL Ellipse(int x1,int y1,int x2,int y2); /绘制椭圆涂鸦部分,以鼠标移动的轨迹画线。同样要用到MouseMove()函数。使起点为鼠标前一个位置,终点为鼠标当前位置,以画直线的方式完成。对于线型、线宽、颜色的设置,通过使用颜色通用对话框完成。2.2 绘图时需要用到的设备环境类介绍 设备环境类CDC提供了绘制和打印的全部函数。为了能让用户使用一些特殊的设备环境,CDC还派生了CPaintDC、CClientDC、CWindowDC和CMetaFileDC类。 (1)CPaintDC比较特殊,它的构造函数和析构函数都是针对OnPaint进行的,但用户一旦获得相关的CDC指针,就可以将它当成任何设备环境(包括屏幕、打印机)指针来使用。CPaintDC类的构造函数会自动调用BeginPaint,而它的析构函数则会自动调用EndPaint。 (2)CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏)中进行绘图,点(0,0)通常指的是客户区的左上角。而CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。CWindowDC和CClientDC构造函数分别调用GetWindowDC和GetDC,但它们的析构函数都是调用ReleaseDC函数3 图像处理的基本方法显示图像的方法并不复杂,图像已经绘制好保存在文件中,需要做的工作就是有效加载图像文件并让它显示出来,这里我们讨论几种最常用的方法。 LoadImage加载图像 该函数装载图标,光标,或位图。 函数原型:HANDLE LoadImage( HINSTANCE hinst, /包含图像的实例句柄,可以为NULL LPCTSTR lpszName,/图像的资源名称,本机加载,完整路径 UINT uType, /图像类型 int cxDesired, /加载的位图,参数为0 int cyDesired, /加载的位图,参数为0 UINT fuLoad );/返回加载的图像句柄图像文件只支持bmp类型的。 获取鼠标位置的颜色值 VC提供了三个宏,用于获取某一颜色的红、绿、蓝三基色。1)GetRValue宏 该宏用于获取指定颜色的红颜色值2)GetGValue宏 该宏用于获取指定颜色的绿颜色值3)GetBValue宏 该宏用于获取指定颜色的蓝颜色值 BYTE GetRValue(DWORD rgb ); rgb标识一个颜色值。 返回值:指定颜色的红色值。 BYTE GetGValue(DWORD rgb ); rgb标识一个颜色值。 返回值:指定颜色的绿色值。 BYTE GetBValue(WORD rgb ); rgb标识一个颜色值。 返回值:指定颜色的蓝色值。提取颜色 GetPixel方法该方法用于获取某一点的颜色值。语法:COLORREF GetPixel( int x, int y ) const;COLORREF GetPixel( POINT point ) const;参数: x、y、point标识坐标点。返回值:坐标点的颜色值。 SetPixel方法 该方法用于设置某一点的颜色值。语法:COLORREF SetPixel( int x, int y, COLORREF crColor );COLORREF SetPixel( POINT point, COLORREF crColor );参数 x、y、point标识坐标点。 crColor标识设置的颜色值。返回值:坐标点实际显示的颜色值。4音频视频播放Wav文件用mciSendCommand函数 语法如下:MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD_PTR dwParam);参数说明:IDDevice:表示接收命令消息的MCI设备标识符。uMsg:表示命令消息, 使用mciSendCommand函数,需要引用Mmsystem.h头文件,链接Winmm.lib库文件。#include Mmsystem.h /应用头文件#pragma comment (lib,“Winmm.lib”) /引用库文定义一个CPlayWave类,用于打开波形设备、播放wav文件、关闭波形设备。 向视图类中添加一个CPlayWave成员。CPlayWave wave; 向视图类中添加一个按钮,处理按钮的单击事件。/定义一个CPlayWave成员void CPlayWaveView:OnBtPlay() wave.Stop(); /停止播放 wave.Play(m_hWnd,Windows XP 登录音.wav); /开始播放wav文件使用MCIWndCreate函数播放avi文件在PlayAvi Dlg.app中引用vfw.h头文件并链接Vfw32.lib库文件。#include Vfw.h/引用头文件#pragma comment (lib,“Vfw32.lib”)/链接库文件处理“OK”按钮的单击事件,弹出文件打开对话框让用户选择一个avi文件,并进行播放。void CPlayAviDlg:OnOK() CFileDialog flDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT, AVI文件|*.avi|,this); /定义文件打开对话框 if (flDlg.DoModal()=IDOK) /判断用户是否单击OK按钮 MCIWndDestroy(m_hAviWnd); /先释放窗口 m_hAviWnd = MCIWndCreate(m_hWnd,NULL, MCIWNDF_SHOWMODE|MCIWNDF_NOTIFYMODE, flDlg.GetPathName(); /创建MCI窗口 MCIWndPlay(m_hAviWnd); /播放文件 /此时已可以播放在调用MCIWndCreate函数前,如果之前已经创建了一个视频窗口,则首先需要调用MCIWndDestroy函数释放视频窗口。在对话框关闭时释放MCI窗口。void CPlayAviDlg:OnCancel() MCIWndDestroy(m_hAviWnd); /释放MCI窗口 CDialog:OnCancel();向对话框中添加OnNotifyMode消息方法,当设备的模式发生改变时调用该方法。(手动添加)LRESULT CPlayAviDlg:OnNotifyMode(WPARAM wparam, LPARAM lparam)long code = (long)lparam;/获取通知代码if (code = MCI_MODE_STOP)/判断avi文件是否播放完毕 MCIWndClose(m_hAviWnd); /关闭MCI窗口 return 0; 在对话框的消息映射部分添加消息映射宏。 ON_MESSAGE(MCIWNDM_NOTIFYMODE,OnNotifyMode)三、 设计方法及步骤1、 主对话框 首先启动VS2008创建一个基于对话框的应用程序,然后在资源中添加四个菜单栏,并将住对话框与主对话框连接起来,在菜单栏里添加文字处理、简单绘图、图像处理、音频视频播放,帮助五个菜单项。接着添加四个对话框,标题分别改为文字处理、简单绘图、图像处理、音频视频播放,并将其与对应的菜单项连接起来。然后将给四个对话框添加对话框类,给主菜单的四个子菜单添加消息响应函数,并调用对应的对话框,将四个子对话框设为无模式对话框,使点击主菜单的四个子菜单弹出对应的对话框。对话框的ID号及对应的菜单栏如下:ID标题MENU 的IDIDD_DIALOG1文字处理IDR_32771IDD_DIALOG2简单绘图IDR_32772IDD_DIALOG3图像处理IDR_32773IDD_DIALOG4音频视频播放IDR_32774帮助对话框的ID号及对应的菜单栏如下:1.1增加背景图片:首先进入资源视图,添加一个位图资源如下图所示,点击导入;然后给C综合3Dlg类添加消息映射函数BOOL CWordDlg:OnEraseBkgnd(CDC* pDC),添加以下代码以实现根据窗口大小按比例显示添加的背景图片。代码如下:BOOL CWordDlg:OnEraseBkgnd(CDC* pDC)/ TODO: 在此添加消息处理程序代码和/或调用默认值CBitmap bitmap;/构建位图对象bitmap.LoadBitmapA(IDB_BITMAP5);/加载位图CDC dcCompatible;/创建于当前DC兼容的DCdcCompatible.CreateCompatibleDC(pDC);/BITMAP bmp;bitmap.GetBitmap(&bmp);dcCompatible.SelectObject(&bitmap);CRect rect;GetClientRect(&rect);/pDC-BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);return TRUE;1.2连接四个对话框:给对话框添加类:选中对话框点击右键,选择添加类,然后进入如下对话框,填入相应的类名,点击“完成”。添加代码如下:首先添加四个对话框类的头文件#include DrawDlg.h#include ImagDlg.h#include WmpDlg.h#include WordDlg.h然后给主对话框的子菜单添加对应的消息响应函数,代码如下:void C综?合?3Dlg:On32771()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?CWordDlg *pDlg=new CWordDlg;pDlg-Create(IDD_DIALOG1);pDlg-ShowWindow(SW_NORMAL);void C综?合?3Dlg:On32772()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?DrawDlg *pDlg=new DrawDlg;pDlg-Create(IDD_DIALOG2);pDlg-ShowWindow(SW_NORMAL);void C综?合?3Dlg:On32773()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?CImagDlg *pDlg=new CImagDlg;pDlg-Create(IDD_DIALOG3);pDlg-ShowWindow(SW_NORMAL);void C综?合?3Dlg:On32774()/ TODO: 在此?添?加命令?处鋦理?程序代洙?码?CWmpDlg *pDlg=new CWmpDlg;pDlg-Create(IDD_DIALOG4);pDlg-ShowWindow(SW_NORMAL);2. 文字处理2.1增加背景:首先进入资源视图,添加一个位图资源如下图所示,点击导入;然后给CWordDlg类添加消息映射函数BOOL CWordDlg:OnEraseBkgnd(CDC* pDC),添加以下代码以实现根据窗口大小按比例显示添加的背景图片。代码如下:BOOL CWordDlg:OnEraseBkgnd(CDC* pDC)/ TODO: 在此添加消息处理程序代码和/或调用默认值CBitmap bitmap;/构建位图对象bitmap.LoadBitmapA(IDB_BITMAP5);/加载位图CDC dcCompatible;/创建于当前DC兼容的DCdcCompatible.CreateCompatibleDC(pDC);/BITMAP bmp;bitmap.GetBitmap(&bmp);dcCompatible.SelectObject(&bitmap);CRect rect;GetClientRect(&rect);/pDC-BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY);pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);return TRUE;2 2 按钮事件响应然后添加四个按钮,修改其对应的ID值,如下:名称ID文字渐变IDC_BUTTON1文字镂空IDC_BUTTON2颜色旋转IDC_BUTTON3文字背景颜色IDC_BUTTON4然后给各个菜单项添加对应的消息映射函数,代码如下:void CWordDlg:OnBnClickedButton1()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?m=3;Invalidate();void CWordDlg:OnBnClickedButton2()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?m=4;Invalidate();void CWordDlg:OnBnClickedButton3()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?m=0;Invalidate();void CWordDlg:OnBnClickedButton4()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?m=2;Invalidate();void CWordDlg:OnPaint()CPaintDC dc(this); / device context for painting/ TODO: 在此?处鋦添?加消?息处鋦理?程序代洙?码?/ 不?为a绘?图?消?息调獭?用? CDialogEx:OnPaint()CDC *pDC=GetDC();switch(m)case 0:CFont mFont;VERIFY(mFont.CreateFont(45,30,0,0,FW_HEAVY,TRUE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,_T(宋?体?);CPen pen(PS_SOLID,2,RGB(255,0,0);pDC-SelectObject(&pen);pDC-BeginPath();CFont *pOldFont=pDC-SelectObject(&mFont);pDC-TextOut(100,100,_T(南?京?工程学院o);pDC-EndPath();pDC-StrokePath();mFont.DeleteObject();pDC-SelectObject(pOldFont);break;case 1: /CString str10= _T(多),_T(多),_T(多),_T(多),_T(多),_T(多),_T(多),_T(多);pDC-SelectStockObject(NULL_BRUSH);pDC-SetBkMode(TRANSPARENT);CFont font;CBrush brush;CPen pen;if(bdraw)for(int i=0;iSelectObject(&font);pDC-SetTextColor(coli);pDC-TextOut(posxi,100,_T(南?京?工程学院o);pDC-SelectObject(oldfont);font.Detach();break;case 2:SetTimer(0,300,NULL);CFont font;font.CreatePointFont(500,_T(黑体?),pDC);CFont* pOldFont=pDC-SelectObject(&font);/创洹?建输?出?字?符?串?.CString str (_T (南?京?工程学院o!);/设?置?字?体?颜?色?pDC-SetTextColor (RGB(m_nRed,m_nGreen,m_nBlue);/输?出?字?体?pDC-TextOut(50,100,str);pDC-SelectObject(pOldFont);ReleaseDC(pDC);break;case 3:CString sTemp; sTemp=综?合?作痢?业唉?说明书酣?,?请?不?要癮找我要癮!?谢?谢?!?; CWnd* pWnd1; pWnd1 = GetDlgItem(IDR_MENU2);/返?回?控?件t句?柄括? CClientDC dc1(pWnd1); dc1.TextOutW(50,150,sTemp);/在static控?件t上?输?出?文?字? CClientDC dc2(this); dc2.SetBkColor(RGB(255,0,255); dc2.SetTextColor(RGB(0,0,255); dc2.TextOutW(150,150,sTemp);break;case 4: CDC*pDC=GetDC();CFont m_font;pDC-SetBkMode(TRANSPARENT);CRect m_rect;GetClientRect(m_rect);pDC-FillRect(m_rect,NULL);pDC-SetViewportOrg(m_rect.Width()/2,m_rect.Height()/2);for(int i=1;iSelectObject(&m_font);pDC-SetTextColor(RGB(255-i,i*255,i+50);pDC-TextOut(0,0,_T(abcdefg);m_font.DeleteObject();break;void CWordDlg:OnTimer(UINT_PTR nIDEvent)/ TODO: 在此?添?加消?息处鋦理?程序代洙?码?和/或调獭?用?默?认?值if(m=2)if(m_nRed=25)m_nGreen -= 20;else if(m_nRed = 0)m_nGreen = 255; elsem_nGreen = 0;if(m_nBlue=235)m_nBlue += 20;else if(m_nBlue = 255)m_nBlue = 0; elsem_nBlue = 255;Invalidate();/重?画-文?字?/*else if(m=1)KillTimer(1);Alpha=Alpha-I_Alpha;for(int i=0;iStretchBlt(r.left,r.top,r.Width(),r.Height(),&memDC,0,0,BitInfo.bmWidth,BitInfo.bmHeight,SRCCOPY);/ pDC-BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY); /向窗洹?口中D绘?制?位?图?bmp.Detach(); /分?离?位?图?句?柄括?memDC.DeleteDC(); /释酣?放?设?备?上?下?文?对?象void CImagDlg:OnBnClickedButton2()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?CDC * m_dc;CRect m_rect;m_picture.GetClientRect(m_rect);m_dc = m_picture.GetDC();int r1,g1,b1,r2,g2,b2;for (int i = 1;im_rect.right+1;i+)for (int j = 1; jGetPixel(i,j);COLORREF nextcolor = m_dc-GetPixel(i-1,j-1);r1 = (color & 0xFF);g1 = (int)(color & 65280) / 256;b1 = (int)(color & 0xFF0000) / 65536;r2 = (nextcolor & 0xFF);g2 = (int)(nextcolor & 62580) / 256;b2 = (int)(nextcolor & 0xFF0000) / 65536;r1+= (r1 - r2) /2;g1 += (g1 - g2) / 2;b1 += (b1 - b2) / 2;if ( r1 255)r1 = 255;if ( r1 255)b1 = 255;if (b1 255)g1 = 255;if ( g1 SetPixel(i,j,RGB(r1,g1,b1);void CImagDlg:OnBnClickedButton3()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码? CDC * m_dc;CRect m_rect;m_picture.GetClientRect(m_rect);m_dc = m_picture.GetDC();int r1,g1,b1,r2,g2,b2;for (int i = 1;im_rect.right+1;i+)for (int j = 1; jGetPixel(i,j);double m_gray ;r1 = GetRValue(color);g1 = GetGValue(color);b1 = GetBValue(color);m_gray = (0.38*r1+0.49*g1+0.1*b1);color = RGB(m_gray,m_gray,m_gray);m_dc-SetPixel(i,j,color);void CImagDlg:OnBnClickedButton4()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?CDC* pDC = m_picture.GetDC();CRect m_rect;m_picture.GetClientRect(m_rect);BYTE r,g,b;for (int i=1; im_rect.Width();i+)for (int j=1;jGetPixel(i,j);r = GetRValue(clr);g = GetGValue(clr);b = GetBValue(clr);r = abs(255-r);g = abs(255-g);b = abs(255-b);pDC-SetPixel(i,j,RGB(r,g,b);/*CDC * m_dc;CRect m_rect;m_HBitmap.GetClientRect(m_rect);m_dc =m_HBitmap.GetDC();int r1,g1,b1,r2,g2,b2;for (int i = 1;im_rect.right+1;i+)for (int j = 1; jGetPixel(i,j);COLORREF nextcolor = m_dc-GetPixel(i+1,j+1);double m_gray ;r1 = GetRValue(color);g1 = GetGValue(color);b1 = GetRValue(color);r2 =GetRValue(nextcolor);g2 = GetGValue(nextcolor);b2 = GetBValue(nextcolor);r1=r1-r2+128;g1=g1-g2+128;b1=b1-b2+128;if(r1255)r1 = 255;else if(r1255)g1 = 255;else if(g1255)b1 = 255;else if(b1SetPixel(i,j,color);*/void CImagDlg:OnBnClickedButton5()/ TODO: 在此?添?加控?件t通?知a处鋦理?程序代洙?码?CDC * m_dc;CRect m_rect;m_picture.GetClientRect(m_rect);m_dc = m_picture.GetDC();int r1,g1,b1,r2,g2,b2;for (int i = 1;im_rect.right+1;i+)for (int j = 1; jGetPixel(i,j);COLORREF nextcolor = m_dc-GetPixel(i+1,j+1);double m_gray ;r1 = GetRValue(color);g1 = GetGValue(color);b1 = GetRValue(color);r2 =GetRValue(nextcolor);g2 = GetGValue(nextcolor);b2 = GetBValue(nextcolor);r1=r1-r2+128;g1=g1-g2+128;b1=b1-b2+128;if(r1255)r1 = 255;else if(r1255)g1 = 255;else if(g1255)b1 = 255;else if(b1SetPixel(i,j,color);5. 音频视频5.1.增加背景图片(同文字处理)5.2音频视频播放首先在音频视频对话框中添加一个WindowMediaPlay控件和一个ListBox控件,分别用来实现文件列表的添加显示和音频视频媒体的播放。然后添加四个按钮,Caption值分别设为:添加、播放、下一个和上一个。其对应的ID值和消息响应函数名如下:CaptionID消息响应函数添加IDC_OPEN CWmpDlg:OnBnClickedOpen()播放IDC_PLAY CWmpDlg:OnBnClickedPlay()下一个IDC_NEXT CWmpDlg:OnBnClickedNext()上一个IDC_LAST CWmpDlg:OnBnClickedLast()分别给ListBox和WindowsMediaPlay添加一个变量,如下图所示:系统将自动生成一个COcx1类在源文
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!