C#.NET windows控件实现水印

 Windows控件在Web下的引用 首先我们建立一个window控件 项目名称为EditImagePint 然后

  

  我们把项目下的UserControl cs改为ImagePint cs 切记文件名和构造函数都改!

  先制作界面 首先在设计模式下 我们将一个PictureBox拖放到解面上 命名为pictureBox

  

  

  下面我们转入代码页 也就是ImagePint cs

  我们需要引用的对象有 using System;using System Collections;using System ComponentModel;using System Drawing;using System Data;using System Windows Forms;using System IO;using System Net;

  然后我们写一个函数

  private void ImagePint_Load(object sender System EventArgs e){/*具体代码我们下面介绍*/}

  这个函数 是为了在web页面使用时候加载使用的

  然后我们看控件自己的生成代码 把this Load += new System EventHandler(this ImagePint_Load);加如InitializeComponent()中#region 组件设计器生成的代码

  /// /// 设计器支持所需的方法 不要使用代码编辑器 /// 修改此方法的内容 /// private void InitializeComponent(){this pictureBox = new System Windows Forms PictureBox();this SuspendLayout();// // pictureBox // this pictureBox Location = new System Drawing Point( );this pictureBox Name = pictureBox ;this pictureBox TabIndex = ;this pictureBox TabStop = false;// // ImagePint// this Controls Add(this pictureBox );this Name = ImagePint ;//看到了吗?很明显 先面的是我们加上去的this Load += new System EventHandler(this ImagePint_Load);this ResumeLayout(false);

  }#endregion

  有了这些东西 组件就可以在web下使用了 但是既然是水印 就应该有原始图片 和水印图片 及一些其他的参数 这里我们就用公共函数 至于web怎么把值传进去 我们到下面再说

  #region 公共属性

  //显示宽度public int ImgWidht{get {return _ImgWidth;}set {_ImgWidth = value;}}

  //显示高度public int ImgHeight{get {return _ImgHeight;}set {_ImgHeight = value;}}

  //透明度private int Alpha{get {return _Alpha;}set {_Alpha = value;}}

  //主图片地址public string ZPicture{get {return _ZPicture;}set {_ZPicture = value;}}

  //水印图片地址public string FPicture{get {return _FPicture;}set {_FPicture = value;}}

  #endregion

  下面把完整的代码贡献给大家

  代码拷贝框 using System;using System<fp class='fp-6u1wv'></fp>Collections;using System<fp class='fp-jrh3l'></fp>ComponentModel;using System<fp class='fp-46co0'></fp>Drawing;using System<fp class='fp-6u1wv'></fp>Data;using System<fp class='fp-ir9zx'></fp>Windows<fp class='fp-46co0'></fp>Forms;using System<fp class='fp-jrh3l'></fp>IO;using System<fp class='fp-6u1wv'></fp>Net;namespace EditImagePint{ /// <summary> /// UserControl<fp class='fp-2norb'></fp> 的摘要说明<fp class='fp-fk4z2'></fp> /// </summary> public class ImagePint : System<fp class='fp-ir9zx'></fp>Windows<fp class='fp-46co0'></fp>Forms<fp class='fp-jrh3l'></fp>UserControl { /// <summary> /// 必需的<a _blank<fp class='fp-107o5'></fp>>设计</a>器变量<fp class='fp-3ivmu'></fp> /// </summary> private System<fp class='fp-46co0'></fp>ComponentModel<fp class='fp-jrh3l'></fp>Container ponents = null; public ImagePint() { // 该调用是 Windows<fp class='fp-jrh3l'></fp>Forms 窗体设计器所必需的<fp class='fp-ybmj6'></fp> InitializeComponent(); // TODO: 在 InitComponent 调用后添加任何初始化 } /// <summary> /// 清理所有正在使用的资源<fp class='fp-fk4z2'></fp> /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if( ponents != null ) ponents<fp class='fp-46co0'></fp>Dispose(); } base<fp class='fp-46co0'></fp>Dispose( disposing ); } #region 组件设计器生成的代码 /// <summary> /// 设计器支持所需的方法 <fp class='fp-16ygi'></fp> 不要使用代码编辑器 /// 修改此方法的内容<fp class='fp-ybmj6'></fp> /// </summary> private void InitializeComponent() { this<fp class='fp-46co0'></fp>pictureBox<fp class='fp-naa43'></fp> = new System<fp class='fp-46co0'></fp>Windows<fp class='fp-jrh3l'></fp>Forms<fp class='fp-46co0'></fp>PictureBox(); this<fp class='fp-46co0'></fp>SuspendLayout(); // // pictureBox<fp class='fp-naa43'></fp> // this<fp class='fp-jrh3l'></fp>pictureBox<fp class='fp-x5mm4'></fp><fp class='fp-ir9zx'></fp>Location = new System<fp class='fp-46co0'></fp>Drawing<fp class='fp-jrh3l'></fp>Point(<fp class='fp-lrm6f'></fp><fp class='fp-g8k18'></fp> <fp class='fp-gr3w3'></fp>); this<fp class='fp-6u1wv'></fp>pictureBox<fp class='fp-x5mm4'></fp><fp class='fp-46co0'></fp>Name = <fp class='fp-61so8'></fp>pictureBox<fp class='fp-x5mm4'></fp><fp class='fp-aduwd'></fp>; this<fp class='fp-46co0'></fp>pictureBox<fp class='fp-kfx6r'></fp><fp class='fp-46co0'></fp>TabIndex = <fp class='fp-gr3w3'></fp>; this<fp class='fp-jrh3l'></fp>pictureBox<fp class='fp-2norb'></fp><fp class='fp-ir9zx'></fp>TabStop = false; // // ImagePint // this<fp class='fp-jrh3l'></fp>Controls<fp class='fp-jrh3l'></fp>Add(this<fp class='fp-46co0'></fp>pictureBox<fp class='fp-2norb'></fp>); this<fp class='fp-6u1wv'></fp>Name = <fp class='fp-bd212'></fp>ImagePint<fp class='fp-aduwd'></fp>; this<fp class='fp-6u1wv'></fp>Load += new System<fp class='fp-ir9zx'></fp>EventHandler(this<fp class='fp-ir9zx'></fp>ImagePint_Load); this<fp class='fp-jrh3l'></fp>ResumeLayout(false); } #endregion private Bitmap sImage; private int sWidth; private int sHeight; private int _ImgWidth; private System<fp class='fp-ir9zx'></fp>Windows<fp class='fp-6u1wv'></fp>Forms<fp class='fp-jrh3l'></fp>PictureBox pictureBox<fp class='fp-naa43'></fp>; private int _ImgHeight; private int _Alpha; private string _ZPicture = String<fp class='fp-46co0'></fp>Empty; private string _FPicture = String<fp class='fp-jrh3l'></fp>Empty; #region 公共属性 //显示宽度 public int ImgWidht { get {return _ImgWidth;} set {_ImgWidth = value;} } //显示高度 public int ImgHeight { get {return _ImgHeight;} set {_ImgHeight = value;} } //透明度 private int Alpha { get {return _Alpha;} set {_Alpha = value;} } //主图片地址 public string ZPicture { get {return _ZPicture;} set {_ZPicture = value;} } //水印图片地址 public string FPicture { get {return _FPicture;} set {_FPicture = value;} } #endregion private void ImagePint_Load(object sender<fp class='fp-56ktp'></fp> System<fp class='fp-ir9zx'></fp>EventArgs e) { string sourceFile = _ZPicture; string waterMarkFile = _FPicture; //string sourceFile = @<fp class='fp-107o5'></fp><fp class='fp-bd212'></fp>; //string waterMarkFile = @<fp class='fp-107o5'></fp><fp class='fp-107o5'></fp>; sImage = tmpImage(sourceFile); //sImage<fp class='fp-6u1wv'></fp>Width = _ImgWidth==<fp class='fp-mmu1y'></fp>?sImage<fp class='fp-46co0'></fp>Width:_ImgWidth; //sImage<fp class='fp-46co0'></fp>Height = _ImgHeight==<fp class='fp-lrm6f'></fp>?sImage<fp class='fp-jrh3l'></fp>Height:_ImgHeight; sWidth = _ImgWidth==<fp class='fp-gr3w3'></fp>?sImage<fp class='fp-6u1wv'></fp>Width:_ImgWidth; sHeight = _ImgHeight==<fp class='fp-gr3w3'></fp>?sImage<fp class='fp-jrh3l'></fp>Height:_ImgHeight; this<fp class='fp-46co0'></fp>Width = sWidth; this<fp class='fp-ir9zx'></fp>Height = sHeight; pictureBox<fp class='fp-2norb'></fp><fp class='fp-6u1wv'></fp>Width = sWidth; pictureBox<fp class='fp-kfx6r'></fp><fp class='fp-jrh3l'></fp>Height = sHeight; this<fp class='fp-46co0'></fp>MakeWaterImage(waterMarkFile); } public Bitmap tmpImage(string strUrl) { Bitmap bitmap; if(strUrl<fp class='fp-ir9zx'></fp>IndexOf(<fp class='fp-61so8'></fp><fp class='fp-bd212'></fp>)<<fp class='fp-lrm6f'></fp>) { bitmap = new Bitmap(strUrl); return bitmap; } else { WebClient webClient = new WebClient(); Stream data = webClient<fp class='fp-6u1wv'></fp>OpenRead(strUrl); bitmap = new Bitmap(data); return bitmap; } } //方法作用:生成水印图片 //sourceFile:要生成水印的图片文件 //WaterMarkFile:存放水印的图片文件 public void MakeWaterImage(string waterMarkFile) { try { //水印图 Bitmap wImage = tmpImage(waterMarkFile); int wWidth = wImage<fp class='fp-6u1wv'></fp>Width; int wHeight = wImage<fp class='fp-46co0'></fp>Height; //make Graphics<fp class='fp-6u1wv'></fp> Graphics g = Graphics<fp class='fp-ir9zx'></fp>FromImage(sImage); int x; //临时变量 int y; //监时变量 int x<fp class='fp-naa43'></fp>; //原图和水印图的宽度差 int y<fp class='fp-2norb'></fp>; //原图和水印图的高度差 int w; //生成的水印图的宽度 int h; //生成的水印图的高度 int al; //alpha int rl; //Red int gl; //Green int bl; //Blue if(sWidth > wWidth) { x<fp class='fp-kfx6r'></fp> = sWidth <fp class='fp-th *** g'></fp> wWidth; y<fp class='fp-2norb'></fp> = sHeight <fp class='fp-th *** g'></fp> wHeight; w = wWidth; h = wHeight; } else { x<fp class='fp-naa43'></fp> = <fp class='fp-mmu1y'></fp>; y<fp class='fp-naa43'></fp> = <fp class='fp-lrm6f'></fp>; w = sWidth; h = sHeight; } //开始绘图 for(x = <fp class='fp-naa43'></fp>; x < w; x++) { for(y = <fp class='fp-naa43'></fp>; y < h; y++) { al = wImage<fp class='fp-ir9zx'></fp>GetPixel(x<fp class='fp-g8k18'></fp>y)<fp class='fp-ir9zx'></fp>A; rl = wImage<fp class='fp-ir9zx'></fp>GetPixel(x<fp class='fp-56ktp'></fp>y)<fp class='fp-46co0'></fp>R; gl = wImage<fp class='fp-46co0'></fp>GetPixel(x<fp class='fp-g8k18'></fp>y)<fp class='fp-jrh3l'></fp>G; bl = wImage<fp class='fp-jrh3l'></fp>GetPixel(x<fp class='fp-56ktp'></fp>y)<fp class='fp-ir9zx'></fp>B; al = _Alpha==<fp class='fp-gr3w3'></fp>?<fp class='fp-zz2lc'></fp><fp class='fp-gr3w3'></fp>:_Alpha; if(rl + <fp class='fp-l3e9x'></fp><fp class='fp-qaocl'></fp> < <fp class='fp-k3649'></fp><fp class='fp-7dhov'></fp><fp class='fp-qaocl'></fp>) rl += <fp class='fp-cwit2'></fp><fp class='fp-qaocl'></fp>; if(gl + <fp class='fp-k3649'></fp><fp class='fp-qaocl'></fp> < <fp class='fp-v4hjb'></fp><fp class='fp-xcdeh'></fp><fp class='fp-qaocl'></fp>) gl += <fp class='fp-v4hjb'></fp><fp class='fp-7dhov'></fp>; if(bl + <fp class='fp-k3649'></fp><fp class='fp-xcdeh'></fp> < <fp class='fp-cwit2'></fp><fp class='fp-qaocl'></fp><fp class='fp-qaocl'></fp>) bl += <fp class='fp-v4hjb'></fp><fp class='fp-7dhov'></fp>; g<fp class='fp-jrh3l'></fp>DrawEllipse(new Pen(new SolidBrush(Color<fp class='fp-6u1wv'></fp>FromArgb(al<fp class='fp-8p5pj'></fp>rl<fp class='fp-g8k18'></fp>gl<fp class='fp-56ktp'></fp>bl)))<fp class='fp-g8k18'></fp>x<fp class='fp-naa43'></fp>+x<fp class='fp-56ktp'></fp>y<fp class='fp-kfx6r'></fp>+y<fp class='fp-gkc4q'></fp><fp class='fp-2norb'></fp><fp class='fp-gkc4q'></fp><fp class='fp-2norb'></fp>); } } g<fp class='fp-6u1wv'></fp>Save(); pictureBox<fp class='fp-naa43'></fp><fp class='fp-46co0'></fp>Image = sImage; } catch(Exception ex) { MessageBox<fp class='fp-46co0'></fp>Show(ex<fp class='fp-46co0'></fp>Message); } } }} [Ctrl+A 全部选择 然后拷贝]

  然后我们把这个控件生成一个Release版本 然后把生成的dll文件copy到你的虚拟目录下 然后就是web调用了 我们先建立一个虚拟目录 比如说我们建立的虚拟目录及地址为 localhost/Object/ImagePrint/我们就把生成的 EditImagePint dll 文件copy到这个目录下并建立一个文件 把以下的代码放进去

  <object id= print classid=//localhost/Object/ImagePrint/EditImagePint dll#EditImagePint ImagePint Width= Height= VIEWASTEXT ><param name= ImgWidht value= ><param name= ImgHeight value= ><param name= Alpha value= ><param name= ZPicture value= ><param name= FPicture value= ></object>

  看到了把 这些param就是我们的公共属性了 ) 这样就把值传递进去了

  最终显示如下

  

  对不起大家 目前还不支持GIF

lishixinzhi/Article/program/net/201311/13537



  • c鍦ㄧ埍鎯呯殑鍚箟鏄粈涔
    绛旓細c鍦ㄧ埍鎯呯殑鍚箟鏄粈涔,鐢ㄥ悇绉嶅悇鏍风殑绗﹀彿鏉ヤ唬鏇挎垜浠兂瑕佽〃杈剧殑鐪熷疄鎰忔濇槸鎴戜滑瀵逛竴浠芥劅鎯呯殑鍚搫琛ㄧず,涓栭棿涓囩墿瀛樺湪鐨勬剰涔夊氨鏄垜浠祴浜堢殑鍐呮兜,涓嬮潰鍒嗕韩c鍦ㄧ埍鎯呯殑鍚箟鏄粈涔堛 c鍦ㄧ埍鎯呯殑鍚箟鏄粈涔1 C鎸囩殑鏄幇鍦ㄦ祦琛岀殑C鍨嬬埍鎯呰銆 C鍨嬬埍鎯呰 鈥淐鍨嬬埍鎯呰鈥濇寚鐨勬槸瀵圭幇浠g埍鎯呭叧涓绉嶆柊鐨勫畾涔夈傚湪鐖辨儏涓,鏈夎繘鏈夐銆...
  • c鏄粈涔堟剰鎬?
    绛旓細c++鐨勫叿浣撳惈涔夊涓嬶細C++鏄C璇█鐨勭户鎵匡紝瀹冩棦鍙互杩涜C璇█鐨勮繃绋嬪寲绋嬪簭璁捐锛屽張鍙互杩涜浠ユ娊璞℃暟鎹被鍨嬩负鐗圭偣鐨勫熀浜庡璞$殑绋嬪簭璁捐锛岃繕鍙互杩涜浠ョ户鎵垮拰澶氭佷负鐗圭偣鐨勯潰鍚戝璞$殑绋嬪簭璁捐銆侰++鎿呴暱闈㈠悜瀵硅薄绋嬪簭璁捐鐨勫悓鏃讹紝杩樺彲浠ヨ繘琛屽熀浜庤繃绋嬬殑绋嬪簭璁捐锛屽洜鑰孋++灏遍傚簲鐨勯棶棰樿妯¤岃锛屽ぇ灏忕敱涔嬨侰++涓嶄粎鎷ユ湁...
  • c鏄粈涔堟剰鎬?
    绛旓細c++鐨勫叿浣撳惈涔夊涓嬶細C++鏄C璇█鐨勭户鎵匡紝瀹冩棦鍙互杩涜C璇█鐨勮繃绋嬪寲绋嬪簭璁捐锛屽張鍙互杩涜浠ユ娊璞℃暟鎹被鍨嬩负鐗圭偣鐨勫熀浜庡璞$殑绋嬪簭璁捐锛岃繕鍙互杩涜浠ョ户鎵垮拰澶氭佷负鐗圭偣鐨勯潰鍚戝璞$殑绋嬪簭璁捐銆侰++鎿呴暱闈㈠悜瀵硅薄绋嬪簭璁捐鐨勫悓鏃讹紝杩樺彲浠ヨ繘琛屽熀浜庤繃绋嬬殑绋嬪簭璁捐锛屽洜鑰孋++灏遍傚簲鐨勯棶棰樿妯¤岃锛屽ぇ灏忕敱涔嬨侰++涓嶄粎鎷ユ湁...
  • 濂崇敓鍙戜釜c鏄粈涔堟剰鎬濆晩
    绛旓細濂崇敓鍙戜釜c鏄粈涔堟剰鎬濆晩 闅忕潃鏃朵唬鐨勫彂灞,濂虫ф濇兂鍙戠敓浜嗙炕澶╄鍦扮殑鍙樺寲,杩囧幓濂抽潬鐢,鐜板湪濂虫у垯宕囧皻鐙珛,浠ヤ笅鎴戜负澶у鍒嗕韩濂崇敓鍙戜釜c鏄粈涔堟剰鎬濆晩锛屽揩鏉ョ湅鐪嬪惂 濂崇敓鍙戜釜c鏄粈涔堟剰鎬濆晩1 c鐨勬剰鎬濇槸 濞 灏辨槸璇翠汉 榛橀粯鍞у敡 涓嶅お鐖蜂滑 褰㈠璇嶏紝c鍗砪issy锛岃宑issy=sissy锛宻issy鎰忎负鏌斿急鎴栨急鐨勭敺瀛┿...
  • c鏄粈涔堟剰鎬
    绛旓細c++鐨勫叿浣撳惈涔夊涓嬶細C++鏄C璇█鐨勭户鎵匡紝瀹冩棦鍙互杩涜C璇█鐨勮繃绋嬪寲绋嬪簭璁捐锛屽張鍙互杩涜浠ユ娊璞℃暟鎹被鍨嬩负鐗圭偣鐨勫熀浜庡璞$殑绋嬪簭璁捐锛岃繕鍙互杩涜浠ョ户鎵垮拰澶氭佷负鐗圭偣鐨勯潰鍚戝璞$殑绋嬪簭璁捐銆侰++鎿呴暱闈㈠悜瀵硅薄绋嬪簭璁捐鐨勫悓鏃讹紝杩樺彲浠ヨ繘琛屽熀浜庤繃绋嬬殑绋嬪簭璁捐锛屽洜鑰孋++灏遍傚簲鐨勯棶棰樿妯¤岃锛屽ぇ灏忕敱涔嬨侰++涓嶄粎鎷ユ湁...
  • 涓轰粈涔c鏄粍鍚?
    绛旓細鏁板绗﹀彿c鍙充笂瑙掓槸1鍙充笅瑙掓槸4鐨勬剰鎬濇槸鏁板涓殑缁勫悎锛屽彸涓嬭鐨4琛ㄧず鎬讳綋涓暟锛屽彸涓婅鐨1琛ㄧず鎶藉彇涓暟锛屼笖浠4涓噷闈㈡娊鍙栦竴涓紝C¹₄=4梅1=4銆傜粍鍚堬細涓鑸湴锛屼粠n涓笉鍚岀殑鍏冪礌涓紝浠诲彇m锛坢鈮锛変釜鍏冪礌涓轰竴缁勶紝鍙綔浠巒涓笉鍚屽厓绱犱腑鍙栧嚭m涓厓绱犵殑涓涓粍鍚堛傛墍鏈夎繖鏍风殑缁勫悎鐨勬绘暟...
  • c鏄粈涔?
    绛旓細鍖栧涓C琛ㄧず鐗╄川鐨勯噺娴撳害锛堟懇灏旀祿搴︼級锛屾槸涓绉嶅父鐢ㄧ殑婧舵恫娴撳害鐨勮〃绀烘柟娉曪紝涓烘憾娑蹭腑婧惰川鐨勭墿璐ㄧ殑閲忛櫎浠ユ贩鍚堢墿鐨勪綋绉備互涓婇潰鍏紡涓紝C(B)浠h〃婧惰川鐨勭墿璐ㄧ殑閲忔祿搴︼紝n(B)浠h〃婧惰川鐨勭墿璐ㄧ殑閲忥紝V浠h〃婧舵恫鐨勪綋绉傛憾娑叉祿搴﹀彲鍒嗕负璐ㄩ噺娴撳害锛堝璐ㄩ噺鐧惧垎娴撳害锛夈佷綋绉祿搴︼紙濡傛懇灏旀祿搴︺佸綋閲忔祿搴︼級鍜岃川閲-浣撶Н...
  • c鐨勫叕寮忔槸浠涔?
    绛旓細m>n銆傛帓鍒楃粍鍚c鐨勫叕寮忥細C(n,m)=A(n,m)/m!=n!/m!(n-m)!涓嶤(n,m)=C(n,n-m)銆(n涓轰笅鏍,m涓轰笂鏍)銆備緥濡侰(4,2)=4!/(2!*2!)=4*3/(2*1)=6,C(5,2)=C(5,3)銆傛帓鍒楃粍鍚坈璁$畻鏂规硶锛欳鏄粠鍑犱釜涓夊彇鍑烘潵锛屼笉鎺掑垪锛屽彧缁勫悎銆侰(n锛宮)=n*(n-1)*...*(n-m+1)/m...
  • c鏄粈涔堣溅鏍
    绛旓細琛屾斂绾у埆鐨勮娇杞C杞︼紝鎴栫О涓 Execuive锛屼篃灏辨槸琛屾斂绾у埆鐨勮娇杞︼紝鎺掗噺涓鑸槸2.4鍒3.2鍗囷紝杩欎釜绾ц溅鐨勬帓姘旈噺鍙珮鍙綆銆傞氬父鏈 A銆 B銆 C銆 D绛夌骇杞︼紝鍚勫浗鏍囧噯涓嶅悓锛屾垜鍥芥洿娌℃湁缁熶竴鐨勬爣鍑嗭紝鍥犱负寰峰浗姹借溅棣栧厛涓庢垜鍥藉悎璧勫苟鍗犻浜嗕竴瀹氬競鍦猴紝鍥犳寰峰浗姹借溅澶氶噰鐢ㄥ痉鍥藉垎绾ф硶锛氭牴鎹痉鍥芥苯杞﹀垎绾ф爣鍑嗭紝A0銆丄00绾...
  • c鏄粈涔堟剰鎬
    绛旓細c++鐨勫叿浣撳惈涔夊涓嬶細C++鏄C璇█鐨勭户鎵匡紝瀹冩棦鍙互杩涜C璇█鐨勮繃绋嬪寲绋嬪簭璁捐锛屽張鍙互杩涜浠ユ娊璞℃暟鎹被鍨嬩负鐗圭偣鐨勫熀浜庡璞$殑绋嬪簭璁捐锛岃繕鍙互杩涜浠ョ户鎵垮拰澶氭佷负鐗圭偣鐨勯潰鍚戝璞$殑绋嬪簭璁捐銆侰++鎿呴暱闈㈠悜瀵硅薄绋嬪簭璁捐鐨勫悓鏃讹紝杩樺彲浠ヨ繘琛屽熀浜庤繃绋嬬殑绋嬪簭璁捐锛屽洜鑰孋++灏遍傚簲鐨勯棶棰樿妯¤岃锛屽ぇ灏忕敱涔嬨侰++涓嶄粎鎷ユ湁...
  • 扩展阅读:韩国macbookpro ... java windowbuilder ... paperpass免费入口 ... xboxone欧版 ... www.sony.com.cn ... windows11 ... www.vivo.com ... macbook pro2022 ... java入门网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网