[急]像QQ这样的好友头像是转换成ICO才能在托盘中闪烁的吧?

stg609 2010-04-16 10:10:16
在托盘中显示是不是只能是icon呀?这样的话,怎么写代码可以把普通的图片转换成ico呀?总不可能用户上传了张图片后,人为使用工具去转换成ico吧?

急,请大家想想办法。
...全文
174 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
stg609 2010-04-17
  • 打赏
  • 举报
回复
T_T,终于找到一个不错的C#下的工具了,和大家分享一下:http://blog.csdn.net/zgke/archive/2008/11/12/3279327.aspx
stg609 2010-04-17
  • 打赏
  • 举报
回复
找到vb 下的bmp转ico源码,试用之后,可以达到自己的要求,但是本人未学过vb,里面很多的对象都看不懂,希望哪位高手可以将vb转换成c#. vb代码可以去这里下载。如果哪位高手可以解决问题,愿另开一贴200分送上。不够可再加。
stg609 2010-04-16
  • 打赏
  • 举报
回复
恩,有可能。那有什么办法吗?
xingyuebuyu 2010-04-16
  • 打赏
  • 举报
回复
这个是代码直接缩放成ICON格式的,所以失真度太大.
至于你发的链接,它可能采用了专门的ICON格式的编码器进行修正过.
stg609 2010-04-16
  • 打赏
  • 举报
回复
谢谢4 楼的,我之前也找到过类似的,不过我用过了,发现不是很管用,可能是我用的有问题,请指点:
// Create a Bitmap object from an image file.
Bitmap bmp = new Bitmap(sourceFileName);
// Get an Hicon for myBitmap.
IntPtr Hicon = bmp.GetHicon();
// Create a new icon from the handle.
Icon newIcon = Icon.FromHandle(Hicon);
//Write Icon to File Stream
FileStream fs = new FileStream(destFileName, FileMode.OpenOrCreate);
newIcon.Save(fs);
fs.Close();

我传入了一张20*20的bmp,转换成ico后,还是20*20的,但是这个ico无法直接预览,更严重的是高度失真,色彩丢失,看起来像灰色的。但用我之前所给出链接上的工具是可以很好的转换成ico的。

但是我也有一次传入另一张20*20的bmp图像给这个方法,却能较好的转换成ico.

貌似上面这个方法对源图片要求较高,但是我不能保证用户上传的图片都要符合某种标准,我只能限制用户上传的图片类型。
xingyuebuyu 2010-04-16
  • 打赏
  • 举报
回复
            Bitmap bmp = new Bitmap("d:\\1.bmp");
IntPtr ii= bmp.GetHicon();
Icon ion = new Icon(Icon.FromHandle(ii), new Size(32, 32));
DestroyIcon(ii);


修改SIZE即可
stg609 2010-04-16
  • 打赏
  • 举报
回复
我希望能实现类似http://tools.dynamicdrive.com/favicon/所示的功能,可以把bmp,jpg等转换成16*16 的ico.
hzxsasdfgh 2010-04-16
  • 打赏
  • 举报
回复
你去看看msdn上有没有文件操作类!有就
搞个最简单的把后缀名改一下!
或者你去查查有没有什么软件!有带控制台命令的。
有就编程操作那个软件!
这样就实现了自动化的操作!
stg609 2010-04-16
  • 打赏
  • 举报
回复
我想你可能误会了,我不是想问如何实现闪烁,我是想知道如何将jpg、bmp等转换成ico
wuyq11 2010-04-16
  • 打赏
  • 举报
回复
定时器
托盘对应的图片在图片之间切换
private void timer1_Tick(object sender, System.EventArgs e)
  {   this.notifyIcon1.Icon=ico1;}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧