主要是上传时根据用户的选择,对图片进行调亮调暗后保存。
同时也可以设定保存时压缩至百分之多少进行保存
这些要怎么去实现啊,各位帮忙啊,这方面我啥都不懂啊。
此外,关于图形处理的也可以多说些,谢谢大家乐
同时也可以设定保存时压缩至百分之多少进行保存
这些要怎么去实现啊,各位帮忙啊,这方面我啥都不懂啊。
此外,关于图形处理的也可以多说些,谢谢大家乐
解决方案 »
- ReportViewer可以显示报表,导出Excel/pdf点保存后,显示无法下载,请求的站点不可用
- Response.Redirect()之后的后退问题
- gridview的手动存储过程分页的思路
- 运行asp.net出错后IE出现的运行调试?
- SqlDataSource DeleteCommand 出错 帮忙解决 其他的命令 没事
- 如何实现.NET安装文件夹下Enterprise Samples里面的FMStocks7的打包效果?(高手请进)
- 高分求助日志问题及美工问题
- ★★★100分请教关于DataGrid删除一行记录的问题?高手请进.
- Function的返回值类型可以是ArrayList的吗???
- ajax 页面刷新问题
- 在程序中使用了Internet Explorer WebControls,该如何设置?
- 大家来评下理,太过分了
亮度可以用ImageAttributes.SetGamma方法看MSDN例子
只是我不知道该怎么去具体实现它们。
因为我没弄过图形这一块
大家帮帮忙啊......
{
Image buffer = new Bitmap(img.Width,img.Height);
Graphics g = Graphics.FromImage(buffer);
g.CompositingQuality = quality;
ImageAttributes attr = new ImageAttributes();
attr.SetGamma(gamma);
g.DrawImage(img,
new Rectangle(0,0,img.Width,img.Height),
0,0,
img.Width,
img.Height,
GraphicsUnit.Pixel,
attr);
g.Dispose();
return buffer;
}
// gamma值设置为(0,10)之间以调整亮度
// quality值是CompositingQuality枚举
但我搜索了一下你的帖子,但没搜到啊,救命啊。
我在搜索作者那里填的是“Sunmast”,关键字填的是“%”,但搜索出来的结果只有14篇帖子,而且基本都是灌水性质的。
我是搜索的方式不对吗?还是有其他的问题?希望GGJJ们再给我多讲讲图形这块的东西,谢谢了。真的要帮忙啊,555~~~
只是你说的这个:
attr.SetGamma(gamma); // gamma值设置为(0,10)之间以调整亮度
我感觉不太对啊?我将gamma值设置成很大(628),并不是全黑的呀,花屏。
如果按照MSDN和其他资料说的,一般设为0到2.2之间,2以后的也不是全黑,感觉都是黑白性质的。
所以综合来看,这个attr.SetGamma(gamma);应该并不是用来调节图片亮度的,个人认为。
不知道各位大哥还有没有其他的实现方法呢?谢谢。
另外,调节亮度和旋转图片这些效果要在即不回传刷新的情况下进行预览,又该怎样做呢?Javascript能做到这点吗?或者是有什么可以变通的办法?多谢大家帮忙了...#region 调节图片亮度
private bool Brightness(Bitmap b, int nBrightness)
{
if (nBrightness < -255 || nBrightness > 255)
return false;
BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width,
b.Height), ImageLockMode.ReadWrite,
PixelFormat.Format24bppRgb);
int stride = bmData.Stride;
System.IntPtr Scan0 = bmData.Scan0;
int nVal = 0;
unsafe
{
byte * p = (byte *)(void *)Scan0;
int nOffset = stride - b.Width*3;
int nWidth = b.Width * 3;
for(int y=0;y<b.Height;++y)
{
for(int x=0; x < nWidth; ++x )
{
nVal = (int) (p[0] + nBrightness);
if (nVal < 0) nVal = 0;
if (nVal > 255) nVal = 255;
p[0] = (byte)nVal;
++p;
}
p += nOffset;
}
}
b.UnlockBits(bmData);
return true;
}
#endregion
Javascript能做到这点吗?或者是有什么可以变通的办法?多谢大家帮忙了...