344 lines
10 KiB
C#
344 lines
10 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Web;
|
||
using System.Runtime.Serialization.Json;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using System.Web.Services.Protocols;
|
||
using System.Security.Cryptography;
|
||
using System.Text;
|
||
using System.Web.SessionState;
|
||
using System.Data;
|
||
using System.Drawing.Imaging;
|
||
using System.Drawing;
|
||
using System.IO;
|
||
using System.Data.SqlClient;
|
||
using System.Configuration;
|
||
using System.Net;
|
||
using System.Text.RegularExpressions;
|
||
|
||
/// <summary>
|
||
/// globalClass 的摘要描述
|
||
/// </summary>
|
||
public static class globalClass
|
||
{
|
||
public static bool isURL(string url)
|
||
{
|
||
|
||
return Uri.IsWellFormedUriString(url, UriKind.Absolute);
|
||
}
|
||
|
||
public static string GetIPAddress()
|
||
{
|
||
System.Web.HttpContext context = System.Web.HttpContext.Current;
|
||
string sIPAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
|
||
if (string.IsNullOrEmpty(sIPAddress))
|
||
{
|
||
return context.Request.ServerVariables["REMOTE_ADDR"];
|
||
}
|
||
else
|
||
{
|
||
string[] ipArray = sIPAddress.Split(new Char[] { ',' });
|
||
return ipArray[0];
|
||
}
|
||
}
|
||
|
||
public static Boolean Base64ToFile(string base64String, string filePath) {
|
||
Boolean ret = false;
|
||
|
||
try
|
||
{
|
||
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "").Replace("data:application/pdf;base64,", "").Replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,", ""));
|
||
File.WriteAllBytes(filePath, imageBytes);
|
||
ret = true;
|
||
}
|
||
catch {
|
||
ret = false;
|
||
}
|
||
|
||
|
||
return ret;
|
||
}
|
||
|
||
|
||
|
||
public static System.Drawing.Image Base64ToImage(string base64String)
|
||
{
|
||
// Convert Base64 String to byte[]
|
||
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""));
|
||
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
|
||
|
||
// Convert byte[] to Image
|
||
ms.Write(imageBytes, 0, imageBytes.Length);
|
||
System.Drawing.Image image__1 = System.Drawing.Image.FromStream(ms, true);
|
||
return image__1;
|
||
}
|
||
|
||
public static Stream Base64ToStream(string base64String)
|
||
{
|
||
Stream newReturn;
|
||
|
||
try
|
||
{
|
||
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "").Replace("data:application/pdf;base64,", "").Replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,", ""));
|
||
//File.WriteAllBytes(filePath, imageBytes);
|
||
newReturn = new MemoryStream(imageBytes);
|
||
|
||
}
|
||
catch
|
||
{
|
||
newReturn = null;
|
||
}
|
||
|
||
|
||
return newReturn;
|
||
}
|
||
|
||
// 取得網址圖片
|
||
public static System.Drawing.Image DownloadImageFromUrl(string imageUrl)
|
||
{
|
||
System.Drawing.Image image = null/* TODO Change to default(_) if this is not a reference type */;
|
||
|
||
try
|
||
{
|
||
System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imageUrl);
|
||
webRequest.AllowWriteStreamBuffering = true;
|
||
webRequest.Timeout = 30000;
|
||
|
||
System.Net.WebResponse webResponse = webRequest.GetResponse();
|
||
|
||
System.IO.Stream stream = webResponse.GetResponseStream();
|
||
|
||
image = System.Drawing.Image.FromStream(stream);
|
||
|
||
webResponse.Close();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return null/* TODO Change to default(_) if this is not a reference type */;
|
||
}
|
||
|
||
return image;
|
||
}
|
||
|
||
public static System.Drawing.Image fileToImage(System.IO.Stream fileContent)
|
||
{
|
||
try
|
||
{
|
||
System.Drawing.Image imgObj;
|
||
|
||
long fileLength = fileContent.Length;
|
||
byte[] imageBuffer = new byte[fileLength - 1 + 1];
|
||
fileContent.Read(imageBuffer, 0, System.Convert.ToInt32(fileLength));
|
||
|
||
// 將圖片塞進MemoryStream
|
||
MemoryStream inputMS = new MemoryStream(imageBuffer);
|
||
imgObj = System.Drawing.Image.FromStream(inputMS);
|
||
|
||
return imgObj;
|
||
}
|
||
catch
|
||
{
|
||
return null/* TODO Change to default(_) if this is not a reference type */;
|
||
}
|
||
}
|
||
|
||
public static System.Drawing.Image markImage(System.Drawing.Image backImg, System.Drawing.Image waterImg)
|
||
{
|
||
// 設定背景圖片
|
||
Graphics gr = System.Drawing.Graphics.FromImage(backImg);
|
||
|
||
float newP = float.Parse(backImg.Width.ToString()) / 720f;
|
||
|
||
float newWH = 72f * newP;
|
||
int newWidthHeight = Convert.ToInt32(newWH);
|
||
|
||
Bitmap waterLogo = new Bitmap(waterImg);
|
||
|
||
//新建logo浮水印圖片
|
||
Bitmap Logo = ScaleImage(waterLogo, newWidthHeight, newWidthHeight);
|
||
|
||
|
||
|
||
gr.DrawImage(Logo, (backImg.Width - Logo.Width) / 2, (backImg.Height - Logo.Height) / 2);
|
||
gr.Dispose();
|
||
|
||
return backImg;
|
||
}
|
||
|
||
public static System.Drawing.Image resizeImage(System.Drawing.Image img, int newWidth, int newHeight)
|
||
{
|
||
Bitmap imageOutput = new Bitmap(img, newWidth, newHeight);
|
||
Image oimg = (Image)imageOutput;
|
||
return oimg;
|
||
}
|
||
|
||
|
||
|
||
public static Bitmap ScaleImage(Bitmap pBmp, int pWidth, int pHeight)
|
||
{
|
||
try
|
||
{
|
||
Bitmap tmpBmp = new Bitmap(pWidth, pHeight);
|
||
Graphics tmpG = Graphics.FromImage(tmpBmp);
|
||
|
||
//tmpG.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||
|
||
tmpG.DrawImage(pBmp,
|
||
new Rectangle(0, 0, pWidth, pHeight),
|
||
new Rectangle(0, 0, pBmp.Width, pBmp.Height),
|
||
GraphicsUnit.Pixel);
|
||
tmpG.Dispose();
|
||
return tmpBmp;
|
||
}
|
||
catch
|
||
{
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static Stream ToStream(this Image image, ImageFormat format)
|
||
{
|
||
var stream = new System.IO.MemoryStream();
|
||
image.Save(stream, format);
|
||
stream.Position = 0;
|
||
return stream;
|
||
}
|
||
|
||
public static string CreateRandomCode(int Number)
|
||
{
|
||
string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
|
||
string[] allCharArray = allChar.Split(',');
|
||
string randomCode = "";
|
||
|
||
Random rand = new Random(Guid.NewGuid().GetHashCode());
|
||
for (int i = 0; i <= Number - 1; i++)
|
||
{
|
||
int t = rand.Next(allCharArray.Length);
|
||
randomCode += allCharArray[t];
|
||
}
|
||
return randomCode;
|
||
}
|
||
|
||
public static string CreateCaseRandomCode(int Number)
|
||
{
|
||
string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
|
||
string[] allCharArray = allChar.Split(',');
|
||
string randomCode = "";
|
||
|
||
Random rand = new Random(Guid.NewGuid().GetHashCode());
|
||
for (int i = 0; i <= Number - 1; i++)
|
||
{
|
||
int t = rand.Next(allCharArray.Length);
|
||
randomCode += allCharArray[t];
|
||
}
|
||
return randomCode;
|
||
}
|
||
|
||
public static bool IsDate(string strDate)
|
||
{
|
||
try
|
||
{
|
||
DateTime.Parse(strDate);
|
||
return true;
|
||
}
|
||
catch
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public static string getPageData(string url)
|
||
{
|
||
if (url == null || url.Trim() == "")
|
||
return "";
|
||
|
||
try {
|
||
WebClient wc = new WebClient();
|
||
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;");
|
||
|
||
wc.Credentials = CredentialCache.DefaultCredentials;
|
||
Byte[] pageData = wc.DownloadData(url);
|
||
return Encoding.UTF8.GetString(pageData);//.ASCII.GetString
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
|
||
public static Image getUrlPic(string url) {
|
||
if (url == null || url.Trim() == "")
|
||
return null;
|
||
|
||
try
|
||
{
|
||
WebClient wc = new WebClient();
|
||
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;");
|
||
wc.Credentials = CredentialCache.DefaultCredentials;
|
||
|
||
System.IO.MemoryStream Ms = new System.IO.MemoryStream(wc.DownloadData(url));
|
||
Image img = Image.FromStream(Ms);
|
||
return img;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return null;
|
||
}
|
||
}
|
||
|
||
public static bool IsNumeric(string anyString)
|
||
{
|
||
if (anyString == null)
|
||
{
|
||
anyString = "";
|
||
}
|
||
if (anyString.Length > 0)
|
||
{
|
||
double dummyOut = new double();
|
||
System.Globalization.CultureInfo cultureInfo =
|
||
new System.Globalization.CultureInfo("en-US", true);
|
||
|
||
return Double.TryParse(anyString, System.Globalization.NumberStyles.Any,
|
||
cultureInfo.NumberFormat, out dummyOut);
|
||
}
|
||
else
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public static string getLocalBaseDomain()
|
||
{
|
||
return HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority;
|
||
}
|
||
|
||
public static string getLocalDomain()
|
||
{
|
||
return HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/');
|
||
}
|
||
|
||
public static void AddScriptToHead(this System.Web.UI.HtmlControls.HtmlHead h, string script, bool AddScriptTags)
|
||
{
|
||
System.Web.UI.WebControls.Literal l = new System.Web.UI.WebControls.Literal();
|
||
|
||
if (AddScriptTags)
|
||
{
|
||
l.Text = @"<script type=""text/javascript"">
|
||
//<![CDATA["
|
||
+ script +
|
||
@"//]]>
|
||
</script>";
|
||
}
|
||
else
|
||
{
|
||
l.Text = script;
|
||
}
|
||
h.Controls.Add(l);
|
||
}
|
||
|
||
}
|
||
|
||
|