• 12899阅读
  • 15回复

窗口中怎么用缩略图的方式显示图片??? [复制链接]

上一主题 下一主题
离线leon0356
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-13
— 本帖被 XChinux 执行加亮操作(2010-10-29) —
窗口中怎么用缩略图的方式显示图片???
       多次麻烦大家,很感谢大家的帮助.
[ 此帖被leon0356在2009-10-13 19:45重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2009-10-13
你想问什么呢?
离线leon0356
只看该作者 2楼 发表于: 2009-10-13
窗口中怎么用缩略图的方式显示图片?
离线dbzhang800

只看该作者 3楼 发表于: 2009-10-13
能具体一点么,你是不清楚如何缩小图片,是不清楚如何显示图片,还是不清楚如何显示很多图片
离线wenhuan2008
只看该作者 4楼 发表于: 2009-10-13
我想问一下,QGraphicsView中如何按图片的正常大小显示,既不拉伸也不平铺?
离线dbzhang800

只看该作者 5楼 发表于: 2009-10-13
引用第4楼wenhuan2008于2009-10-13 20:18发表的  :
我想问一下,QGraphicsView中如何按图片的正常大小显示,既不拉伸也不平铺?


http://qt.nokia.com/doc/4.5/qgraphicspixmapitem.html
离线leon0356
只看该作者 6楼 发表于: 2009-10-13
把一个文件夹里的图片全部以 缩略图的方式在窗口中显示出来。


缩略图不是把图片缩小,是一种显示方式,就是WINDONS系统中显示方式中的一种。
显示方式有:缩略图
                    平铺
                    图标
                    列表
                    详细信息



不知道我表达清楚没有,欢迎发贴问我,谢谢 。
离线dbzhang800

只看该作者 7楼 发表于: 2009-10-13
呵呵,你把windows想的也太智能了。

你要显示图片的缩微图,必然要先生成。如果你有很多图片,你就会觉得每次重新生成很费时间,就会考虑将生成的缩微图生成一次后保存起来,需要显示时直接显示。

而这个,就是你提到的windows所采用的,你不觉得你的系统会自动生成 “Thumbs.db” 这样的隐藏文件么?
离线leon0356
只看该作者 8楼 发表于: 2009-10-13
对不起,我很菜的,你说的我不懂。
请问QT里有什么方法可以生成这种缩略图显示,有例子就更好了,我好好去学习一下。
离线dbzhang800

只看该作者 9楼 发表于: 2009-10-13
不就是打开图片,缩小,然后显示么?
离线leon0356
只看该作者 10楼 发表于: 2009-10-13
请问窗口中打开图片要调用什么函数,   我没找到。
离线飞雪一刀
只看该作者 11楼 发表于: 2010-10-28
请问一下LZ解决了没有呢?
我现在要做这个一个东西:使用摄像头拍照,拍照后将拍得的照片以缩略图的方式显示在使用Qt做的界面的右端或者是下端(位置无关紧要),图片的缩略图是动态添加的,也就是我拍一张,预览区就添加一张,如果有用过cheese(茄子大头贴的)大虾们就应该很明了我的需求。
现在的问题是——牌照已经实现了,然后将拍的照片存到了磁盘中。
要显示预览,应该使用什么控件?(不知道这里使用“控件”一词是否正确)有人告诉我说使用toolbutton,因为要达到双击缩略图就可以打开图片预览功能。但是我没有添加成功,希望大家支招。
PS:如果哪位大虾能够把答案发送到我的邮箱将不胜感激——luofsong |  163 | com
离线hqd_2008
只看该作者 12楼 发表于: 2010-11-08
对,怎么打开图片的thumbnail确实我也没有搞清楚,
对于采用打开图片再缩小的方式,应该不是很合适.....
离线roywillow

只看该作者 13楼 发表于: 2010-11-08
QImage载入图片,然后用QImage的scale函数改变大小(可以保持或者不保持比例)
然后放到QGraphicsItem之类的东西上就好了吧

其实总感觉Qt对于显示图像的组件似乎做得有些不够呢……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线hqd_2008
只看该作者 14楼 发表于: 2010-11-08
{
    Q_UNUSED(pEvent);

    double wscale = 1.0;
    double hscale = 1.0;
    
    double pixwidth = static_cast<double>(m_image.width());
    double pixheight = static_cast<double>(m_image.height());
    double showwidth = static_cast<double>(width());
    double showheight = static_cast<double>(height());

    double Wscalerate = pixwidth / showwidth;
    double Hscalerate = pixheight / showheight;
    double compare = (Wscalerate > Hscalerate ? Wscalerate : Hscalerate);

    QRect _rect( showwidth/2.0 - pixwidth/compare/2.0,
                showheight/2.0- pixheight/compare/2.0,
                pixwidth/compare,
                pixheight/compare);

    QRect _midrect( (showwidth/2.0-pixwidth/2.0),
                   (showheight/2.0-pixheight/2.0),
                   pixwidth,
                   pixheight );

    QPainter painter(this);  

    painter.save();

    painter.translate(showwidth/2.0, (showheight/2.0));
    painter.scale(wscale, hscale);
    painter.translate(-(showwidth/2), -(showheight/2.0));

    if (compare < 1.0)
        painter.drawImage(_midrect, m_image);
    else
        painter.drawImage(_rect, m_image);
    
    painter.restore();
    //QPainter p(this);
    //p.drawImage((SCREEN_WIDTH-m_image.width())/2, (SCREEN_HEIGHT-m_image.height())/2,m_image);
}
离线谍海幻影
只看该作者 15楼 发表于: 2012-08-22
回 11楼(飞雪一刀) 的帖子
你好,我也在做这方面的东西,也要实现和你一样的功能,不知你是否把它实现了,能否把你的代码与我共享一下,谢谢!!!!邮箱:383690442@qq.com
快速回复
限100 字节
 
上一个 下一个