ASP.NET 用BITMAP生成图片的问题 70
这个是在当前的图上取一块区域的像素点,改颜色,并输出两个图片publicArrayListFillColorInDoubleImage(stringoldImageURL...
这个是在当前的图上取一块区域的像素点,改颜色,并输出两个图片
public ArrayList FillColorInDoubleImage(string oldImageURL,string newImageURL,string HDoldImageURL,string HDnewImageURL
,int startX,int startY,string color,string HDcolor,string str,string fontcolor)
{
ArrayList retuenData=new ArrayList();
bool ts=true;
string recolor="";
string loadPath=System.Web.HttpContext.Current.Server.MapPath(oldImageURL);
string savePath=System.Web.HttpContext.Current.Server.MapPath(newImageURL);
string HDloadPath=System.Web.HttpContext.Current.Server.MapPath(HDoldImageURL);
string HDsavePath=System.Web.HttpContext.Current.Server.MapPath(HDnewImageURL);
Bitmap oldImage=new Bitmap(loadPath);
Bitmap HDoldImage=new Bitmap(HDloadPath);
int HDwidth=HDoldImage.Width;
int HDheight=HDoldImage.Height;
int num=0,xp=0,yp=0;
if(startX>=HDwidth||startY>=HDheight)
ts= false;
else
{
Color pColor=HDoldImage.GetPixel(startX,startY);
recolor="#"+pColor.Name;
Color HDnewC=ColorTranslator.FromHtml(HDcolor);
Color newC=ColorTranslator.FromHtml(color);
for(int i=0;i<HDheight;i++)
{
for(int j=0;j<HDwidth;j++)
{
if(HDoldImage.GetPixel(j,i).ToArgb()==pColor.ToArgb())
{
HDoldImage.SetPixel(j,i,HDnewC);
oldImage.SetPixel(j,i,newC);
num=num+1;
xp=xp+j;
yp=yp+i;
}
}
}
if(num!=0)
{
xp=xp/num;
yp=yp/num;
}
HDoldImage.Save(HDsavePath,ImageFormat.Bmp);
classImage.Save("C:\\Inetpub\\wwwroot\\schoolimage\\s.jpg");
HDclassImage.Save("C:\\Inetpub\\wwwroot\\schoolimageHD\\s.bmp");
oldImage.Dispose();
HDoldImage.Dispose();
GC.Collect();
}
retuenData.Add(ts);
retuenData.Add(recolor);
retuenData.Add(xp);
retuenData.Add(yp);
return retuenData;
}
我现在想把这段里取得的那个区域另输出为一个bitmap,不知道怎么弄……
求高人指点 展开
public ArrayList FillColorInDoubleImage(string oldImageURL,string newImageURL,string HDoldImageURL,string HDnewImageURL
,int startX,int startY,string color,string HDcolor,string str,string fontcolor)
{
ArrayList retuenData=new ArrayList();
bool ts=true;
string recolor="";
string loadPath=System.Web.HttpContext.Current.Server.MapPath(oldImageURL);
string savePath=System.Web.HttpContext.Current.Server.MapPath(newImageURL);
string HDloadPath=System.Web.HttpContext.Current.Server.MapPath(HDoldImageURL);
string HDsavePath=System.Web.HttpContext.Current.Server.MapPath(HDnewImageURL);
Bitmap oldImage=new Bitmap(loadPath);
Bitmap HDoldImage=new Bitmap(HDloadPath);
int HDwidth=HDoldImage.Width;
int HDheight=HDoldImage.Height;
int num=0,xp=0,yp=0;
if(startX>=HDwidth||startY>=HDheight)
ts= false;
else
{
Color pColor=HDoldImage.GetPixel(startX,startY);
recolor="#"+pColor.Name;
Color HDnewC=ColorTranslator.FromHtml(HDcolor);
Color newC=ColorTranslator.FromHtml(color);
for(int i=0;i<HDheight;i++)
{
for(int j=0;j<HDwidth;j++)
{
if(HDoldImage.GetPixel(j,i).ToArgb()==pColor.ToArgb())
{
HDoldImage.SetPixel(j,i,HDnewC);
oldImage.SetPixel(j,i,newC);
num=num+1;
xp=xp+j;
yp=yp+i;
}
}
}
if(num!=0)
{
xp=xp/num;
yp=yp/num;
}
HDoldImage.Save(HDsavePath,ImageFormat.Bmp);
classImage.Save("C:\\Inetpub\\wwwroot\\schoolimage\\s.jpg");
HDclassImage.Save("C:\\Inetpub\\wwwroot\\schoolimageHD\\s.bmp");
oldImage.Dispose();
HDoldImage.Dispose();
GC.Collect();
}
retuenData.Add(ts);
retuenData.Add(recolor);
retuenData.Add(xp);
retuenData.Add(yp);
return retuenData;
}
我现在想把这段里取得的那个区域另输出为一个bitmap,不知道怎么弄……
求高人指点 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |