コード例 #1
0
ファイル: UpController.cs プロジェクト: dkme/moooyo
        public bool BuildMemberCoverImage(String mid, String coverimgbackground, String coverfront)
        {
            Image coverback;
            Graphics g;

            try
            {
                coverback = Image.FromFile(coverimgbackground);
            }
            catch
            { return false; };

            if (coverback == null) return false;
            BiZ.Member.Member mym = BiZ.MemberManager.MemberManager.GetMember(mid);
            if (mym.MemberPhoto.IconID == "") return false;

            //建立背景
            g = System.Drawing.Graphics.FromImage(coverback);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            //加入用户头像
            byte[] stream = new CBB.ImageHelper.ImageLoader().loadimage(mym.MemberInfomation.IconPath.Split('.')[0] + "_p.jpg");
            Stream st = new MemoryStream(stream);

            Image membericon = Image.FromStream(st);

            g.DrawImage(membericon,
                        new Rectangle(108, 44, membericon.Width, membericon.Height),
                        0, 0,
                        membericon.Width, membericon.Height,
                        GraphicsUnit.Pixel);

            //加入头像前遮罩
            if (coverfront != "")
            {
                try
                {
                    Image coverfrontimg = Image.FromFile(coverfront);
                    g.DrawImage(coverfrontimg,
                        new Rectangle(108, 44, coverfrontimg.Width, coverfrontimg.Height),
                        0, 0,
                        coverfrontimg.Width, coverfrontimg.Height,
                        GraphicsUnit.Pixel);
                }
                catch { }
            }

            //String Str1 = "我在米柚(Moooyo.com)获得";
            //String Str2 = mym.Status.ScoreAvg.ToString("#0.0") + "分";

            //g.DrawString(Str1,
            //     new Font("黑体", 20, GraphicsUnit.Pixel),
            //     new SolidBrush(Color.Black),
            //     new PointF(230, 58));

            //g.DrawString(Str2,
            //     new Font("黑体", 50, GraphicsUnit.Pixel),
            //     new SolidBrush(Color.Red),
            //     new PointF(310, 98));

            //String[] colors = new string[] { "#23C619", "#03642A", "#FF3399", "#933605", "#0066CC" };
            //int[] lefts = new int[] { 110, 140, 40, 120, 50 };

            //for (int i = 0; i < mym.MemberRelations.Marks.Count & i < 5; i++)
            //{
            //    g.DrawString(mym.MemberRelations.Marks[i].ContentCove,
            //         new Font("黑体", 18, GraphicsUnit.Pixel),
            //         new SolidBrush(ColorTranslator.FromHtml(colors[i])),
            //         new PointF(lefts[i], 200 + i * 35));
            //}

            g.Dispose();

            MemoryStream imagestream = new MemoryStream();
            coverback.Save(imagestream, System.Drawing.Imaging.ImageFormat.Jpeg);
            CBB.MongoDB.GridFSHelper.UploadFile(imagestream, "cover_" + mym.ID + ".jpg");
            coverback.Dispose();
            imagestream.Dispose();

            return true;
        }
コード例 #2
0
ファイル: SharedController.cs プロジェクト: dkme/moooyo
 private string UploadPictureToTemporary(string memberId, string picturePath)
 {
     byte[] stream = new CBB.ImageHelper.ImageLoader().loadimage(picturePath.Split('.')[0] + "_p.jpg");
     Stream st = new MemoryStream(stream);
     Image membericon = Image.FromStream(st);
     //图片的到临时文件夹
     string filename = HttpContext.Server.MapPath("/temp_up_file/" + (DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString()) + ".jpg");
     membericon.Save(filename, System.Drawing.Imaging.ImageFormat.Jpeg);
     return filename;
 }
コード例 #3
0
ファイル: DisplayObjProvider.cs プロジェクト: dkme/moooyo
        //用户注册并选择兴趣上传图片后,创建一张用户展示图片,分享到用户版定的第三方平台
        public static string getUserIconToShare(string memberid)
        {
            BiZ.Member.Member mym = BiZ.MemberManager.MemberManager.GetMember(memberid);
            //创建背景
            Image coverback = Image.FromFile(HttpContext.Current.Server.MapPath("/pics/Register_UserIcon/upIcon_background.jpg"));
            Graphics g;
            //建立背景画布
            g = System.Drawing.Graphics.FromImage(coverback);
            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            //画用户头像
            Image membericon = null;
            int userIconX = 132;
            int userIconY = 87;
            int userIconWidth = 100;
            int userIconHeight = 100;
            if (mym.MemberInfomation == null || mym.MemberInfomation.IconPath == null || mym.MemberInfomation.IconPath.Trim() == "")
            {
                membericon = Image.FromFile(HttpContext.Current.Server.MapPath("/pics/noicon.jpg"));
            }
            else
            {
                byte[] stream = new CBB.ImageHelper.ImageLoader().loadimage(mym.MemberInfomation.IconPath.Split('.')[0] + "_p.jpg");
                Stream st = new MemoryStream(stream);
                membericon = Image.FromStream(st);
            }
            membericon = new Bitmap(membericon, userIconWidth, userIconHeight);
            g.DrawImage(membericon, new Rectangle(userIconX, userIconY, userIconWidth, userIconHeight), 0, 0, userIconWidth, userIconHeight, GraphicsUnit.Pixel);
            //画用户昵称
            String userNickName = mym.MemberInfomation.NickName;
            float nickNameX = coverback.Width / 2 - (userNickName.Length * 18) / 2 - 2;
            float nickNameY = userIconY + userIconHeight + 15;
            float nickNameSize = 18;
            g.DrawString(userNickName, new Font("微软雅黑", nickNameSize, GraphicsUnit.Pixel), new SolidBrush(Color.FromArgb(68, 68, 68)), new PointF(nickNameX, nickNameY));

            //获取兴趣集合
            IList<BiZ.InterestCenter.Interest> interests = BiZ.InterestCenter.InterestFactory.GetMemberInterest(memberid, 0, 0);
            IList<BiZ.InterestCenter.Interest> interestList = new List<BiZ.InterestCenter.Interest>();
            //最多只能有三个兴趣
            foreach (var obj in interests)
            {
                if (interestList.Count < 3)
                    interestList.Add(obj);
                else
                    break;
            }
            //创建画兴趣的相关参数
            int interestWidth = 40;
            int interestHeight = 40;
            List<Font> fontList = new List<Font>() {
                new Font("微软雅黑", 25, GraphicsUnit.Pixel),
                new Font("微软雅黑", 18, GraphicsUnit.Pixel),
                new Font("微软雅黑", 25, GraphicsUnit.Pixel) };
            List<SolidBrush> solidBrushList = new List<SolidBrush>() {
                new SolidBrush(Color.FromArgb(100, 160, 180)),
                new SolidBrush(Color.FromArgb(158, 1, 2)),
                new SolidBrush(Color.FromArgb(220, 140, 20)) };
            List<PointF> pointFList = new List<PointF>() {
                new PointF(64, 284),
                new PointF(159, 319),
                new PointF(99, 344)};
            List<Rectangle> rectangleList = new List<Rectangle>() {
                new Rectangle(104, 234, interestWidth, interestHeight),
                new Rectangle(159, 234, interestWidth, interestHeight),
                new Rectangle(214, 234, interestWidth, interestHeight)};
            //读取兴趣外框
            string border = HttpContext.Current.Server.MapPath("/pics/Register_UserIcon/upIcon_interest_boder.png");
            System.IO.FileStream borderFileStream = new System.IO.FileStream(border, System.IO.FileMode.Open, System.IO.FileAccess.Read);
            System.IO.BinaryReader borderBinaryReader = new System.IO.BinaryReader(borderFileStream);
            long borderTotalBytes = new System.IO.FileInfo(border).Length;
            byte[] borderBytes = borderBinaryReader.ReadBytes((Int32)borderTotalBytes);
            Stream borderStream = new MemoryStream(borderBytes);
            Image interestBorder = Image.FromStream(borderStream);
            //加入兴趣
            for (int i = 0; i < interestList.Count; i++)
            {
                //获取当前兴趣对象
                var obj = interestList[i];
                //获取兴趣的图标
                string interestIconPath = obj.ICONPath;
                byte[] interestBytes = new CBB.ImageHelper.ImageLoader().loadimage(interestIconPath.Split('.')[0] + "_i.jpg");
                Stream interestStream = new MemoryStream(interestBytes);
                Image interestIcon = Image.FromStream(interestStream);
                interestIcon = new Bitmap(interestIcon, interestWidth, interestHeight);
                //画兴趣图标
                g.DrawImage(interestIcon, rectangleList[i], 0, 0, interestWidth, interestHeight, GraphicsUnit.Pixel);
                //画外框
                g.DrawImage(interestBorder, rectangleList[i], 0, 0, interestWidth, interestHeight, GraphicsUnit.Pixel);
                //获取兴趣名称
                string interestTitle = obj.Title;
                //画兴趣名称
                g.DrawString(interestTitle, fontList[i], solidBrushList[i], pointFList[i]);
            }
            //释放画板
            g.Dispose();
            //保存画好的图片的到临时文件夹
            string filename = "/temp_up_file/" + memberid + (DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString()) + ".jpg";
            coverback.Save(HttpContext.Current.Server.MapPath(filename), System.Drawing.Imaging.ImageFormat.Jpeg);
            //释放图片对象
            coverback.Dispose();
            //放回图片地址
            return filename;
        }
コード例 #4
0
ファイル: photoController.cs プロジェクト: dkme/moooyo
        public ActionResult Get(String id)
        {
            //设置客户端缓存
            String dataflag = "Sat, 07 Mar 2009 13:28:57 GMT";
            Response.AddHeader("Cache-Control", "max-age = 315360000000");
            Response.AddHeader("Last-Modified", dataflag);

            if (Request.Headers["If-Modified-Since"]!=null)
                if (Request.Headers["If-Modified-Since"].ToString().Trim() == dataflag)
            {
                Response.StatusCode = 304;
                return Content("");
            }

            if (id == null) return RedirectToAction("Error", "Error", new { errorno = "404" });
            byte[] stream = new byte[0];
            bool errflag = false;

            try
            {
                stream = new CBB.ImageHelper.ImageLoader().loadimage(id);
            }
            catch
            {
                errflag = true;
            }

            if (stream != null && !errflag)
            {
                return base.File(stream, "image/jpeg");
            }
            else
            {
                try
                {
                    FileStream fs = new FileStream(Server.MapPath("/pics/" + id), FileMode.Open, FileAccess.Read);
                    byte[] pReadByte = new byte[0];
                    BinaryReader r = new BinaryReader(fs);
                    r.BaseStream.Seek(0, SeekOrigin.Begin);    //将文件指针设置到文件开
                    pReadByte = r.ReadBytes((int)r.BaseStream.Length);
                    return base.File(pReadByte, "image/jpeg");
                }
                catch
                {
                    return RedirectToAction("Error", "Error", new { errorno = "404" });
                }
            }
        }