多媒体包括绘图.ppt_第1页
多媒体包括绘图.ppt_第2页
多媒体包括绘图.ppt_第3页
多媒体包括绘图.ppt_第4页
多媒体包括绘图.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多媒體,多媒體包括繪圖(graphics)、影像(image)聲音(sound)、,以及視聽(video)等。,Graphics類別,Graphics為抽象類別,是所有繪圖圖形或字型的基礎類別,它允許您在元件上製作圖形或字型,Graphics方法,當applet程式啟動時執行完init()、start()之後,會自動執行paint(),後來若要更改畫面必須產生事件,例如改變applet視窗大小等。若要強迫執行paint(),您可執行repaint(),它會先執行update()清除畫面之後再呼叫paint()。,paint(),要在容器上繪圖,在您的程式裡頭必須實作一個paint(),並且提供一個Graphics類別的物件供繪圖之用,,repaint(),update(),publicvoidrepaint()本元件重新繪圖。publicvoidrepaint(intx,inty,intwidth,intheight)本元件重新繪圖。(x,y)左上角座標,width寬,height高。publicvoidrepaint(longtm)本元件重新繪圖,在tm毫秒之內。publicvoidrepaint(longtm,intx,inty,intwidth,intheight)本元件重新繪圖。(x,y)左上角座標,width寬,height高,在tm毫秒之內。publicvoidupdate(Graphicsg)以g物件更新本元件。,repain事件處理模式範例這個程式是有一個Button,Button上面寫著請按我,下面有一行字”Buttonnotyetclicked”,當我們按下去之後,下面的字串就會改變成”Buttonclicked”:,/TestButton.javaimportjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publicclassTestButtomextendsAppletimplementsActionListenerprivateButtonbtn;privateStringstr;publicvoidinit()str=newString(Buttonnotyetclicked.);btn=newButton(按下我);btn.addActionListener(this);add(btn);publicvoidactionPerformed(ActionEventae)str=Buttonclicked.;repaint();publicvoidpaint(Graphicsg)g.drawString(str,50,50);,可以使用下列三個建構子,自己建立一個顏色物件,publicColor(floatr,floatg,floatb)建立一個新的r紅g綠b藍所構成的Color物件。r、g、b介於0.0(含)與1.0(含)之間。publicColor(intrgb)建立一個新的rgb所構成的Color物件。rgb第0-7位元表藍色,第8-15位元表綠色,第16-23位元表紅色。publicColor(intr,intg,intb)建立一個新的r紅g綠b藍所構成的Color物件。r、g、b介於0(含)與255(含)之間。,設定顏色,publicfinalstaticColorblack=newColor(0,0,0);publicfinalstaticColorblue=newColor(0,0,255);publicfinalstaticColorcyan=newColor(0,255,255);publicfinalstaticColordarkGray=newColor(64,64,64);publicfinalstaticColorgray=newColor(128,128,128);publicfinalstaticColorgreen=newColor(0,255,0);publicfinalstaticColorlightGray=newColor(192,192,192);publicfinalstaticColormagenta=newColor(255,0,255);publicfinalstaticColororange=newColor(255,200,0);publicfinalstaticColorpink=newColor(255,175,175);publicfinalstaticColorred=newColor(255,0,0);publicfinalstaticColorwhite=newColor(255,255,255);publicfinalstaticColoryellow=newColor(255,255,0);,在Color類別中有下列方法可取得顏色的成分,publicintgetBlue()傳回藍色成分,介於0-255間。publicintgetGreen()傳回綠色成分,介於0-255間。publicintgetRed()傳回紅色成分,介於0-255間。publicintgetRGB()傳回紅綠藍色成分,第0-7位元表藍色,第8-15位元表綠色,第16-23位元表紅色。下列兩個抽象方法getColor()及setColor()屬於Graphics類別,它的衍生類別必須實作這兩個方法。publicabstractvoidsetColor(Colorc)設定顏色為c。publicabstractColorgetColor()傳回Color物件。,【程式MyWindow3.java】,importjava.awt.*;importjavax.swing.*;publicclassMyWindow3extendsJFramepublicMyWindow3()/Constructorsuper(底色為藍色的視窗);setBounds(50,100,400,150);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);getContentPane().setBackground(Color.blue);publicvoidpaint(Graphicsg)g.setFont(newFont(Serif,Font.BOLD,32);g.setColor(Color.RED);g.drawString(我喜歡Java!,100,100);publicstaticvoidmain(Stringargs)MyWindow3frm=newMyWindow3();frm.setVisible(true);,【執行結果】,MyColor.java,importjava.awt.*;importjavax.swing.*;publicclassMyColorextendsJFramepublicMyColor()super(MyColor:Usingcolors);setSize(300,80);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);publicvoidpaint(Graphicsg)Colorcolor=Color.black;g.setColor(color);g.fillRect(25,45,100,20);g.drawString(RGB值:+color.getRed()+(紅),+color.getGreen()+(綠),+color.getBlue()+(藍),130,60);publicstaticvoidmain(Stringargs)MyColormyColor=newMyColor();,MyColor2.java使用JColorChooser元件讓您挑選一個顏色,並將該顏色設為版面的底色。您在改變背景顏色的按鈕上按一下滑鼠左鍵,產生一個按鈕事件,接著就執行actionPerformed()方法。,importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassMyColor2extendsJFrameimplementsActionListenerprivateJButtonchangeColor;privateColorcolor=Color.lightGray;privateContainerc;publicMyColor2()super(MyColor2:使用JColorChooser元件);c=getContentPane();c.setLayout(newFlowLayout();changeColor=newJButton(改變背景顏色);changeColor.addActionListener(this);c.add(changeColor);setSize(300,80);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);publicvoidactionPerformed(ActionEvente)color=JColorChooser.showDialog(this,選色,color);if(color=null)color=Color.lightGray;c.setBackground(color);c.repaint();publicstaticvoidmain(Stringargs)MyColor2app=newMyColor2();,【執行結果】,繪線及方圓,publicabstractvoiddrawLine(intx1,inty1,intx2,inty2)以起點座標(x1,y1)至終點(x2,y2)畫直線。publicvoiddrawRect(intx,inty,intwidth,intheight)畫一個長方形。左上角座標為(x,y),寬為width,高為height。publicvoidfillRect(intx,inty,intwidth,intheight)畫並填滿一個長方形。左上角座標為(x,y),寬為width,高為height。publicabstractvoiddrawOval(intx,inty,intwidth,intheight)畫一個橢圓。中心座標為(x,y),長徑(寬)為width,短徑(高)為height。若長短徑值相同即為圓。publicabstractvoidfillOval(intx,inty,intwidth,intheight)畫並填滿一個橢圓。中心座標為(x,y),長徑(寬)為width,短徑(高)為height。若長短徑值相同即為圓。,程式MyLine.java】,importjava.awt.*;importjavax.swing.*;publicclassMyLineextendsJFrameprivateStrings=UsingdrawString!;publicMyLine()super(“MyLine:繪線條,矩形,橢圓”);setSize(400,170);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);publicvoidpaint(Graphicsg)g.setColor(Color.black);g.drawLine(220,30,350,30);/水平線g.drawLine(220,30,220,160);/垂直線g.drawLine(220,30,350,160);/斜線g.drawRect(20,40,90,55);/矩形(空心)g.fillRect(120,40,90,55);/矩形(實心)g.drawOval(20,100,90,55);/橢圓(空心)g.fillOval(120,100,90,55);/橢圓(實心)publicstaticvoidmain(Stringargs)MyLineapp=newMyLine();,【執行結果】,繪弧,在Graphics類別提供下列兩個繪弧方法drawArc()及fillArc()。弧形是圓或橢圓形的一部分,以時鐘三點鐘方向為基準0度,反時鐘方向為正,順時鐘方向為負。,publicabstractvoidfillArc(intx,inty,ntwidth,intheight,intstartAngle,intarcAngle),畫並填滿一個弧形。中心座標為(x,y),長徑(寬)為width,短徑(高)為height。起角為startAngle度,角度為arcAngle度,0度為3點鐘位置,反時鐘方向為正,順時鐘方向為負。,【程式MyArc.java】,importjava.awt.*;importjavax.swing.*;publicclassMyArcextendsJFramepublicMyArc()super(MyArc:DrawingArcs);setSize(260,120);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);publicvoidpaint(Graphicsg)g.drawArc(15,60,80,40,0,360);/0至360度g.fillArc(100,60,80,40,270,-90);/270至-90度g.drawArc(145,60,80,40,0,-270);/0至-270度publicstaticvoidmain(Stringargs)MyArcapp=newMyArc();,【執行結果】,繪多邊形,publicabstractvoiddrawPolygon(intxPoints,intyPoints,intnPoints)畫一個封閉多邊形。由nPoints點所構成,其座標存於陣列xPoints及yPoints中。publicabstractvoiddrawPolygon(Polygonp)以Polygon類別的物件p畫一個封閉多邊形。publicabstractvoiddrawPolyline(intxPoints,intyPoints,intnPoints);以點陣列資料畫一個多邊線條。publicabstractvoidfillPolygon(intxPoints,intyPoints,intnPoints)畫並填滿一個封閉多邊形。由nPoints點所構成,其座標存於陣列xPoints及yPoints中。publicabstractvoidfillPolygon(Polygonp)以Polygon類別的物件p畫並填滿一個封閉多邊形。多邊形類別Polygon包含一系列的點座標(x,y),相鄰兩點所構成的邊,為多邊形的一邊。,Polygon類別其常用的方法說明如下:,publicPolygon()建構子。建立一個空白的Polygon類別物件。publicPolygon(intxpoints,intypoints,intnpoints)建構子。建立一個npoints個頂點的Polygon類別物件。其i頂點座標為(xpointsi,ypointsi)。publicvoidaddPoint(intx,inty)附加一點(x,y)至本多邊形物件。publicbooleancontains(intx,inty)若(x,y)含於本物件則傳回true,否則傳回false。publicRectanglegetBounds()傳回包含本多邊形物件的最小長方形。publicvoidtranslate(intdeltaX,intdeltaY)沿著x軸移動deltaX,沿著y軸移動deltaY像點。,【程式MyPolygon.java】,importjava.awt.*;importjavax.swing.*;publicclassMyPolygonextendsJFramepublicMyPolygon()super(“MyPolygon:繪多邊形”);setSize(275,230);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);publicvoidpaint(Graphicsg)intxValues=20,40,100,50;intyValues=50,150,100,30;Polygonpoly1=newPolygon(xValues,yValues,4);g.drawPolygon(poly1);Polygonpoly2=newPolygon();poly2.addPoint(100,135);poly2.addPoint(175,50);poly2.addPoint(230,100);poly2.addPoint(200,190);poly2.addPoint(130,180);g.fillPolygon(poly2);publicstaticvoidmain(Stringargs)MyPolygonapp=newMyPolygon();,【執行結果】,線上互動繪圖工具:,線上互動繪圖工具的程式碼如下:,importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassc8_02_03extendsJAppletimplementsActionListener,MouseMotionListener,MouseListenerintpx,py,status,tno=3;inttx=newint20;intty=newint20;intrtx=newint20;intrty=newint20;JButtoncp=newJButton5;JColorChooserch;Colornco;Graphics2Dg2;publicvoidinit()Containerc=getContentPane();c.setLayout(newFlowLayout(FlowLayout.LEFT);c.setBackground(Color.white);c.setSize(500,400);/建立工具列JToolBartb1=newJToolBar();tb1.setFloatable(false);Stringstr1=三角形,正方形,五邊形,六邊形,選擇顏色;/建立元件,for(inti=0;i5;i+)cpi=newJButton(str1i);cpi.addActionListener(this);tb1.add(cpi);c.add(tb1,BorderLayout.NORTH);ch=newJColorChooser();addMouseMotionListener(this);addMouseListener(this);status=0;nco=newColor(0,255,255);publicvoidactionPerformed(ActionEvente)for(inti=0;i4;i+)if(e.getSource()=cpi)tno=i+3;if(e.getSource()=cp4)nco=ch.showDialog(this,選擇顏色,nco);/移動滑鼠指標publicvoidmouseMoved(MouseEvente)/取得座標位置px=e.getX();py=e.getY();status=0;,/拖移滑鼠指標publicvoidmouseDragged(MouseEvente)Graphicsg=getGraphics();g2=(Graphics2D)g;g2.setStroke(newBasicStroke(3.0f);g2.setColor(nco);g2.setXORMode(Color.black);/判斷是否為新的圖形if(status=1)Polygonpg1=newPolygon(rtx,rty,tno);g2.drawPolygon(pg1);elsepx=e.getX();py=e.getY();status=1;doubles=(e.getX()-px)*(e.getX()-px)+(e.getY()-py)*(e.getY()-py);doubler=Math.sqrt(s);intw=360/tno;/計算正多邊形的頂點座標位置for(inti=0;itno;i+)txi=px+(int)(r*Math.sin(180+i*w)*Math.PI/180);tyi=py+(int)(r*Math.cos(180+i*w)*Math.PI/180);rtxi=txi;rtyi=tyi;,Polygonpg2=newPolygon(tx,ty,tno);g2.drawPolygon(pg2);/放掉滑鼠鍵publicvoidmouseReleased(MouseEvente)Graphicsg=getGraphics();g2=(Graphics2D)g;g2.setColor(nco);g2.setStroke(newBasicStroke(3.0f);Polygonpg1=newPolygon(rtx,rty,tno);g2.drawPolygon(pg1);publicvoidmousePressed(MouseEvente)publicvoidmouseEntered(MouseEvente)publicvoidmouseExited(MouseEvente)publicvoidmouseClicked(MouseEvente),統計圖表:,統計圖表這個程式,可以經由HTML傳遞圖表內容的數值參數。Applet程式會根據數值內容,繪製統計圖表。,統計圖表程式碼如下:,importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.applet.*;publicclassc8_03_02extendsJAppletprivateintcount;privateintmax_value;privateintv=newint10;privateColorco=Color.red,Color.blue,Color.pink,Color.yellow,Color.green;publicvoidinit()Stringstr1;Containerc=getContentPane();c.setLayout(null);c.setSize(320,240);count=Integer.parseInt(getParameter(count);max_value=0;for(inti=0;imax_value)max_value=vi;,publicvoidpaint(Graphicsg)intpx,py,width,dh;width=300/count;dh=220/max_value;for(inti=0;icount;i+)g.setColor(coi%5);g.fillRect(10+i*width,210-vi*dh,width,vi*dh);/x,y座標,寬,高g.setColor(Color.black);g.drawString(String.valueOf(vi),10+i*width+width*1/3,230);publicStringgetAppletInfo()returnTitle:統計圖表n+Author:Wu,2002n;publicStringgetParameterInfo()Stringinfo=count,1-10,資料總數,v1,0-100,第一個數值,v2,0-100,第二個數值,v3,0-100,第三個數值,vn,0-100,第n個數值;returninfo;,HTML文件與參數內容如下:,動畫製作:,在瀏覽器中執行畫面如下:,動畫製作的程式碼如下:,importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;.*;publicclassc8_02_02extendsJAppletimplementsActionListenerTimertimer;Imageimg=newImage6;intptr;Graphics2Dg2;publicvoidinit()Stringstr1=a0.gif,a1.gif,a2.gif,a3.gif,a4.gif,a5.gif;Containerc=getContentPane();c.setLayout(null);c.setBackground(Color.white);c.setSize(320,240);/設定視窗大小for(inti=0;i6;i+)tryimgi=getImage(newURL(getCodeBase(),str1i);catch(MalformedURLExceptione)System.out.println(下載圖形檔發生錯誤URL:+e+n);return;ptr=0;timer=newTimer(200,this);timer.start();publicvoidactionPerformed(ActionEvente)if(e.getSource()=timer)Graphicsg=getGraphics();g.drawImage(imgptr%6,10,50,this);ptr+;,電子時鐘:,設計出顯示時間的Applet程式。,電子時鐘的程式碼如下:,importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;.*;importjava.util.*;importjava.text.*;publicclassc8_03_01extendsJAppletimplementsRunnableJLabellb1=newJLabel8;ImageIconicon=newImageIcon11;privatevolatileThreadtimer;publicvoidinit()Stringstr1=0.jpg,1.jpg,2.jpg,3.jpg,4.jpg,5.jpg,6.jpg,7.jpg,8.jpg,9.jpg,x.jpg;Containerc=getContentPane();c.setLayout(null);c.setSize(140,40);/設定視窗大小for(inti=0;iappletviewerImageScale.html,GraphicsDoubleBuffering,如果在程式中有使用到很多的Image或是利用Graphics畫圖的話,那畫面可能就會一閃一閃的,看起來就很不舒服。而這個問題就可以利用GraphicsDoubleBuffering來解決。當畫面上顯示出一張Image時,可以先將下一個要重繪畫面所要用到的Image先貼到buffer裡面,等到要用的時候再將這一個buffer貼到畫面上來,如此就可以很順的顯示出這一張Image,而不會一閃一閃的。,importjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;publicclassTestDoubleBufferingextendsAppletprivateintimageNum;privateintdx,dy;privateImageOffscreenImage;privateGraphicsOffscreenGraphics;publicvoidinit()imageNum=0;dx=dy=10;publicvoidupdate(Graphicsg)paint(g);publicvoidpaint(Graphicsg)if(OffscreenImage=null)OffscreenImage=createImage(200,200);OffscreenGraphics=OffscreenImage.getGraphics();OffscreenGraphics.setColor(Color.white);/將OffscreenGraphics的顏色設定成為白色OffscreenGraphics.fillRect(0,0,200,200);/將顏色設成黑色,在畫出一個實心圓。OffscreenGraphics.setColor(Color.black);OffscreenGraphics.fillOval(dx,dy,dx+30,dy+30);g.drawImage(OffscreenImage,0,0,this);/OffscreenImage貼在目前所使用的這一個Applet上面。dx+=10;dy+=10;tryThread.sleep(1000);/sleep()這一個method如果有發生錯誤的話會丟出一個InterruptedException,所以必須使用try這一個格式來寫。catch(InterruptedExceptione)repaint();,if(OffscreenImage=null)OffscreenImage=createImage(200,200);,首先檢查看OffscreenImage之前是否已經被產生出來了,如果沒有的話則OffscreenImage就會等於null,這時就必須要利用createImage()來產生一個新的OffscreenImage,因為這一個Image並不是直接儲存檔案的內容,所以必須使用createImage()來產生,而裡面的參數分別為寬和長。,OffscreenGraphics=OffscreenImage.getGraphics();,利用Image裡面的getGraphics()這一個method來得到一個graphicscontext。而OffscreenGraphics和OffscreenImage兩者的用途何在?OffscreenImage是真正所要顯示的圖所存放的地方,而OffscreenGraphics是使用來將這些圖畫在OffscreenImage上面的。而每一個Image都有一個相對應的Graphics,所以其所對應的那一個Graphics就可以在那個Image上面作畫。,OffscreenGraphics.setColor(Color.white);OffscreenGraphics.fillRect(0,0,200,200);,先將OffscreenGraphics的顏色設定成為白色的,這樣之後所畫出來的圖形都會是白色的。在將畫面整個都用矩形來覆蓋過去,這兩行的目的在於將之前所畫在OffscreenImage上面的話給覆蓋過去,使得顯示出來的時候不會把之前畫的也一起顯示出來。,MediaTracker,當我們在程式中有要顯示Image的時候,在第一次顯示時通常都會有小小的不順,這是因為當第一次顯示時,這一張Image事實上是還沒有被完全的讀取進來的,因此此時可以利用MediaTracker來偵測這個Image是否已經被完全的讀取進來了。privateMediaTrackermediaTracker;先宣告一個MediaTracker的變數,名稱為mediaTracker。mediaTracker=newMediaTracker(this);對mediaTracker做初始化的動作,而MediaTracker的建構者所要傳入的參數為一個ImageObserver的物件,也就是說要傳入的是目前要使用到這些Image的這一個Applet。,importjava.applet.Applet;importjava.awt.*;publicclassTestMediaTrackerextendsAppletprivateImagetestImage;privateImageoffImage;privateGraphicsoffGraphics;privateMediaTrackermediaTracker;publicvoidinit()mediaTracker=newMediaTracker(this);testImage=newImage4;for(inti=0;i4;i+)testImagei=getImage(getDocumentBase(),ball+(i+1)+.gif);mediaTracker.addImage(testImagei,i);trymediaTracker.waitForAll();catch(InterruptedExceptionie)publicvoidpaint(Graphicsg)if(offImage=null)offImage=createImage(256,64);offGraphics=offImage.getGraphics();for(inti=0;i4;i+)if(mediaTracker.checkID(i,true)offGraphics.drawImage(testImagei,64*i,0,this);g.drawImage(offImage,0,0,this);,mediaTracker.addImage(testImagei,i);,將這些所要使用到的Image利用addImage()這一個method向mediaTracker做註冊的動作。第一個參數是這個Image的名字,第二個參數是一個integer,目的是方便用來查詢這些Image在MediaTracker裡面的狀態。,TrymediaTracker.waitForAll();catch(InterruptedExceptionie),MediaTracker利用waitForAll()這一個method來等待,會一直等到當所有的Image都完全的被讀取進來為止。因為這一個method如果有發生錯誤的話會丟出一個Exception,所以必須利用上面這個try的格式來抓取他可能會丟出來的Exception。而MediaTracker也可以利用waitForID(int)這一個method來等待所指定的那一個Iamge被完全的讀取進來。,for(inti=0;i4;i+)if(mediaTracker.checkID(i,true)offGraphics.drawImage(testImagei,64*i,0,this);,MediaTracker利用checkID()這一個method來檢查目前這一個Image再執行這一個method的時候是否已經完全的被讀取進來了,是的會就會回傳true,要不然就會回傳false,而第一個參數值就是我們要檢查的那張Image在MediaTracker裡面的ID,這個ID是在addImage()時所給的。如果當這個method執行的時候,這一張Image都還沒有被讀取的話,則就會依照第二個參數來決定是否要現在去讀取,true的話就是要立刻去讀取,false的話就是不讀取。這一個參數值的內定值是false,所以這一個參數值也可以不去給定,也就是checkID()裡只用一個參數亦可。,執行結果:,AudioClip,在Java裡面也可以播放音效,不過目前他只能接受.au格式的聲音檔。publicAudioClipgetAudioClip(URLurl)從url取得聲音物件並傳回。publicAudioClipgetAudioClip(URLurl,Stringname)從url取得聲音物件並傳回。name為聲音物件的位置publicvoidplay(URLurl)播放由url傳來的聲音物件。publicvoidplay(URLurl,Stringname)播放由url傳來的聲音物件。name為url之位置。,importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassTestAudioClipextendsAppletprivateAudioCliptestAudio;privateButtonplayButton,loopButton,stopButton;publicvoidinit()testAudio=getAudioClip(getDocumentBase(),test.au);playButton=newButton(play);playButton.addActionListener(newActionListener()publicvoidactionPerformed(ActionEventae)testAudio.play(););loopButton=newButton(loop);loopButton.addActionListener(newA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论