예제 #1
0
        /// <summary>
        /// The BMP stream is loaded in mbpStream parameter
        /// </summary>
        /// <param name="path"></param>
        /// <param name="bmpStream"></param>
        /// <returns></returns>
        public static System.Drawing.Bitmap ImageStream(String path, ref FileMessage fMessage)
        {
            Impersonate oImpersonate    = new Impersonate();
            Boolean     wasImpersonated = Impersonate.isImpersonated();

            try
            {
                if (!wasImpersonated && oImpersonate.ImpersonateValidUser() == FileMessage.ImpersonationFailed)
                {
                    fMessage = FileMessage.ImpersonationFailed;
                    return(null);
                }
                else
                {
                    FileMessage exists = Exists.File_FM(path);
                    if (exists == FileMessage.FileExist)
                    {
                        System.Drawing.Bitmap bmpStream = null;
                        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)){
                            bmpStream = new System.Drawing.Bitmap(System.Drawing.Image.FromStream(fs));
                            fMessage  = FileMessage.Read;
                            fs.Close();
                        }


                        return(bmpStream);
                    }
                    else
                    {
                        fMessage = exists;
                        return(null);
                    }
                }
            }
            catch
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
                fMessage = FileMessage.Catch;
                return(null);
            }
            finally
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
            }
        }
예제 #2
0
        public static FileMessage ImageSize(String path, ref Int32 height, ref Int32 width)
        {
            Impersonate oImpersonate    = new Impersonate();
            Boolean     wasImpersonated = Impersonate.isImpersonated();

            try
            {
                if (!wasImpersonated && oImpersonate.ImpersonateValidUser() == FileMessage.ImpersonationFailed)
                {
                    return(FileMessage.ImpersonationFailed);
                }
                else
                {
                    FileMessage exists = Exists.File_FM(path);
                    if (exists == FileMessage.FileExist)
                    {
                        using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)){
                            System.Drawing.Image objImage = new System.Drawing.Bitmap(System.Drawing.Image.FromStream(fs));
                            width  = objImage.Width;
                            height = objImage.Height;
                            objImage.Dispose();
                            fs.Close();
                        }
                        return(FileMessage.FileExist);
                    }
                    else
                    {
                        return(exists);
                    }
                }
            }
            catch
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
                return(FileMessage.Catch);
            }
            finally
            {
                if (!wasImpersonated)
                {
                    oImpersonate.UndoImpersonation();
                }
            }
        }