using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using UI.Framework.Forms; namespace Grant.Framework { public partial class SetOEM : BaseForm { private int sid = 1003; AuthorizationManage auth; private string userid = ""; public SetOEM(AuthorizationManage auth, string userid = "") { InitializeComponent(); this.auth = auth; this.userid = userid; } private string logo = string.Empty; private void SetOEM_Load(object sender, EventArgs e) { try { var content = auth.SendCoredata("get_oem", new { cid = userid, sid = sid }) as Dictionary; //var content = data["content"] as Dictionary; this.buttonCheck.Checked = (content.ContainsKey("ispayform") && content["ispayform"].ToString() == "1"); this.textBox1.Text = content.ContainsKey("title") ? content["title"].ToString() : "秒单客-返利机器人(官网:fanli.miaodanke.com)"; this.textBox2.Text = content.ContainsKey("notice") ? content["notice"].ToString() : string.Empty; logo = content.ContainsKey("logo") ? content["logo"].ToString().Replace("data:image/png;base64,", "") : string.Empty; this.pictureBox1.Image = CsharpHttpHelper.HttpExtend.Base64StringToImage(logo); } catch (Exception ex) { BaseForm.ShowError(ex); //this.Close(); } } private void simpleButton1_Click(object sender, EventArgs e) { try { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false;//该值确定是否可以选择多个文件 dialog.Title = "请选择文件夹"; //窗体标题 dialog.Filter = "透明图片(*.png)|*.png"; //文件筛选 //默认路径设置为我的电脑文件夹 dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string file = dialog.FileName;//文件夹路径 //Size picSize;float Wpx, Hpx; //GetSize(file,out picSize,out Wpx,out Hpx); //if (Wpx != 380 && Hpx != 100) throw new Exception("尺寸必须为:长380 宽100"); var imgByte = File.ReadAllBytes(file); this.logo = CsharpHttpHelper.HttpHelper.ByteToBase64(imgByte); this.pictureBox1.Image = CsharpHttpHelper.HttpExtend.Base64StringToImage(this.logo); } } catch (Exception ex) { BaseForm.ShowError(ex); } } public static int GetSize(string FileName, out Size Size, out float Wpx, out float Hpx) {//C#快速获取JPG图片大小及英寸分辨率 Size = new Size(0, 0); Wpx = 0; Hpx = 0; int rx = 0; if (!File.Exists(FileName)) return rx; FileStream F_Stream = File.OpenRead(FileName); int ff = F_Stream.ReadByte(); int type = F_Stream.ReadByte(); //if (ff != 0xff || type != 0xd8) //{//非JPG文件 // F_Stream.Close(); // return rx; //} long ps = 0; do { do { ff = F_Stream.ReadByte(); if (ff < 0) //文件结束 { F_Stream.Close(); return rx; } } while (ff != 0xff); do { type = F_Stream.ReadByte(); } while (type == 0xff); //MessageBox.Show(ff.ToString() + "," + type.ToString(), F_Stream.Position.ToString()); ps = F_Stream.Position; switch (type) { case 0x00: case 0x01: case 0xD0: case 0xD1: case 0xD2: case 0xD3: case 0xD4: case 0xD5: case 0xD6: case 0xD7: break; case 0xc0: //SOF0段 ps = F_Stream.ReadByte() * 256; ps = F_Stream.Position + ps + F_Stream.ReadByte() - 2; //加段长度 F_Stream.ReadByte(); //丢弃精度数据 //高度 Size.Height = F_Stream.ReadByte() * 256; Size.Height = Size.Height + F_Stream.ReadByte(); //宽度 Size.Width = F_Stream.ReadByte() * 256; Size.Width = Size.Width + F_Stream.ReadByte(); //后面信息忽略 if (rx != 1 && rx < 3) rx = rx + 1; break; case 0xe0: //APP0段 ps = F_Stream.ReadByte() * 256; ps = F_Stream.Position + ps + F_Stream.ReadByte() - 2; //加段长度 F_Stream.Seek(5, SeekOrigin.Current); //丢弃APP0标记(5bytes) F_Stream.Seek(2, SeekOrigin.Current); //丢弃主版本号(1bytes)及次版本号(1bytes) int units = F_Stream.ReadByte(); //X和Y的密度单位,units=0:无单位,units=1:点数/英寸,units=2:点数/厘米 //水平方向(像素/英寸)分辨率 Wpx = F_Stream.ReadByte() * 256; Wpx = Wpx + F_Stream.ReadByte(); if (units == 2) Wpx = (float)(Wpx * 2.54); //厘米变为英寸 //垂直方向(像素/英寸)分辨率 Hpx = F_Stream.ReadByte() * 256; Hpx = Hpx + F_Stream.ReadByte(); if (units == 2) Hpx = (float)(Hpx * 2.54); //厘米变为英寸 //后面信息忽略 if (rx != 2 && rx < 3) rx = rx + 2; break; default: //别的段都跳过//////////////// ps = F_Stream.ReadByte() * 256; ps = F_Stream.Position + ps + F_Stream.ReadByte() - 2; //加段长度 break; } if (ps + 1 >= F_Stream.Length) //文件结束 { F_Stream.Close(); return rx; } F_Stream.Position = ps; //移动指针 } while (type != 0xda); // 扫描行开始 F_Stream.Close(); return rx; } private void simpleButton2_Click(object sender, EventArgs e) { try { var data = this.auth.SendCoredata("set_oem", new { sid = sid, cid = userid, content = CsharpHttpHelper.HttpHelper.ObjectToJson(new { title = this.textBox1.Text, notice = this.textBox2.Text, ispayform = (buttonCheck.Checked ? "1" : "0"), logo = this.logo }) }); this.Close(); } catch (Exception ex) { BaseForm.ShowError(ex); } } } }