关于C#中如何实现图片的缩略显示? 就是像ACDSee右边栏的效果, 遍历硬盘上的图片文件, 并生成缩略图的显示效果.在C#中应该如何实现? 是用哪个控件? 还是自己编写控件? 望大侠们指教!!!

解决方案 »

  1.   

    MSDN上的代码:Image image = new Bitmap("Compass.bmp");
    Image pThumbnail = image.GetThumbnailImage(100, 100, null, new IntPtr());
    e.Graphics.DrawImage(
       pThumbnail,
       10,
       10,
       pThumbnail.Width,
       pThumbnail.Height);
      

  2.   

    public bool ThumbnailCallback()
    {
    return false;
    }
    public void Example_GetThumb(PaintEventArgs e)
    {
    Image.GetThumbnailImageAbort myCallback =
    new Image.GetThumbnailImageAbort(ThumbnailCallback);
    Bitmap myBitmap = new Bitmap("Climber.jpg");
    Image myThumbnail = myBitmap.GetThumbnailImage(
    40, 40, myCallback, IntPtr.Zero);
    e.Graphics.DrawImage(myThumbnail, 150, 75);
    }
      

  3.   

    GetThumbnailImage方法好像不太好用吧。我记得前年做一个程序的时候,用这个方法做出来的图片很模糊。
      

  4.   

    GetThumbnailImage这个获得的缩略图质量太差! 我的问题主要是怎么能够获得很多图片的缩略显示!
      

  5.   

    如果你想把这个缩略图显示得很大,用GetThumbnailImage图像质量是不怎么样,但像ACDSEE那样的大小的质量看起来还是可以了。你看MSDN上是怎么说的:如果 Image 包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小。如果 Image 不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像。
    请求的缩略图像大小为 120 x 120 像素时,GetThumbnailImage 方法正常运行。如果从具有嵌入式缩略图的 Image 处请求较大的缩略图像(例如,300 x 300),则缩略图像的质量可能显著降低。通过调用 DrawImage 方法缩放主图像(而非嵌入式缩略图),则效果可能较好。
    LZ要很多图片的缩略图显示,那你每张图片都用一下这个方法不就行了!
      

  6.   

    大家还是没有搞明白我的意思, 我的意思是用什么控件来实现缩略显示的效果. 比如说ListView可以实现这种效果吗? 可是我看了ListView的说明, 好像是无法显示缩略图的, 只能有大图标, 小图标, 列表等显示方式. 如果我用PictureBox来将图像按照原比例来缩小显示的话, 一个还好说, 可是多了的话怎么实现? 还有缩略图下的文字说明怎么实现? 
    如果我说的方式可行的话, 缩略图之间, 文字之间, 图片于文字之间的距离怎么调整? 如果窗体大小变化的话, 显示效果怎么调整?以上是我的意思, 不知道大家看明白了没有? 这个效果到现在我还是没有一个好的思路来解决!
    望大家多给些建议!
      

  7.   

    自己顶一下, 这个问题还是没有解决! 谁知道啊?到CodeProject搜索了一下,都是C++的,谁知道C#里面怎么实现啊?
      

  8.   

    你可以构建一个ImageList,然后生成得到的缩略图加到里面
    ListView显示的ImageList对象
    我记得ListView可以显示一张图片下面是文字的格式的,你查一下