解决ecshop产品图片模糊的方法

时间:2024-03-09 11:58:52



ecshop新手往往会遇到这样的问题,后台明明按正常流程上传的产品图片,但是显示却非常模糊,找来找去都找不到原因,我们模板堂(www.ecmoban.com)为大家分析下可能发生这样问题的原因。

情况一:无论是首页还是商品页,产品图片都有严重的模糊情况

如果是这种情况,怀疑你前台图片尺寸,和后台设置的图片尺寸不对应导致。

因为我们做模板的为了产品显示整齐会限制图片尺寸,比如缩略图限制是150*150,详细图限制是300*300。而ecshop默认显示的是100*100,230*230。这样就造成了产品尺寸不对应。所以你要确认前台缩略图和详细图的尺寸是什么,如何确认呢?可以鼠标右键属性,就可以看到尺寸是多少像素了。确认完前台尺寸之后在后台系统设置-》商店设置-》显示设置 里 修改,然后记得点一下“图片批量处理”。就可以解决这样的问题了。

 

情况二:只有缩略图稍微模糊,但并不严重,希望更加清晰。

那么你可以修改一下缩略图质量,按这个教程修改http://help.ecmoban.com/article-341.html

 

情况三:商品详细页的图片中,第一张图片略微模糊,但是相册图清晰。

这种情况是因为详细图的第一张是生成的关系,你可以通过在后台 关闭相册生成,这样调用的就是原图。

商店设置--基本设置里 上传商品是否自动生成相册图: 这个选项默认是选择 是 改成 否 就可以了。

或者修改模板部分的源码,将图片调用的代码由生成的图片改成原图即可。

打开goods.dwt 搜索 <img src="{$goods.goods_img} 改成 <img src="{$goods.original_img}

 

 

我们ecshop开发中心的技术被N多客户问一个同样的问题,就是首页商品及列表页面的商品图片比较模糊,有时还变形,其实这跟程序和模板没有关系,是设置问题,下面由团队小杨给大家详细讲解下。

注意事项:

1、您上传的商品图片像素要足够大足够清晰,不要妄想ecshop程序可以帮您把一个小图放大N倍后,还依然保持清晰。

2、您的商品图片要按照长宽比例上传,一般模板图片是正方形的,那您需要将商品图片处理成正方形后再上传,还有的模板图片是长方形的,就按照宽高比例,将商品图片也处理成长方形。不要嫌麻烦哟,要想网站效果好,还是需要多用些心的。

 

除了上面的注意事项,还要系统后台设置是对的:

 

缩略图就是您首页和列表页面的图片。可以通过点击右键属性来查看我们模板演示图片的大小


步:在后台管理-商店设置-显示设置-缩略图,缩略图的大小由模板实际情况决定

 

 

 

 

步:再看看详情页面的商品图片的设置方法吧。

 后台商店设置-显示设置-显示设置

按照您详情页面图片的实际显示大小来添写。

 

第三步:商品管理-图片批量处理,这样这些图片会由程序重新按比例生成一次。

 

很多客户反映详情页面商品的放大镜放大效果不明显,其实放大镜的原理是将您上传的商品图片原始文件调用出来,如果您上传的原始图片本身就小,那么放大镜效果是出不来的。

自己打理一个网站很不容易,需要站长很用心才可以达到更的效果。

 

 

ECSHOP程序默认生成JPG格式缩略图质量不太好,通常比较模糊,尤其是再添加水印的话,感觉图像显示效果更差。
这跟图片处理函数有关,默认生成JPG图片质量是75(也有说60,65),我们可通过改变函数参数提高图片显示效果

以ECShop2.7.2为例(其他版本类同),通常需要两步操作:

首先,最好让你的原始图片与后台设置的商品图片比例保持一致且原始图片质量较好
其次,如果你需要水印的话,最好是提前处理好而不是让网站程序给图片加水印

这里的缩略图100:100比例为1:1;商品图片230:230,比例为1:1
所以保证你的原始图片比例也为1:1最好。

ECSHOP商品图片模糊的解决方法

ECSHOP商品图片模糊的解决方法

一。改图片处理函数

打开includes/cls_image.php文件,在大约260行下,将代码:

  1. /* 生成文件 */
  2. if (function_exists(‘imagejpeg’))
  3. {
  4. $filename .= ’.jpg’;
  5. imagejpeg($img_thumb, $dir . $filename);
  6. }
  7. elseif (function_exists(‘imagegif’))
  8. {

改为:

  1. /* 生成文件 */
  2. if (function_exists(‘imagejpeg’))
  3. {
  4. $filename .= ’.jpg’;
  5. imagejpeg($img_thumb, $dir . $filename,90); //90这个值越高图片质量越好最高为100。(注意前面有个英文“,”号)
  6. }
  7. elseif (function_exists(‘imagegif’))
  8. {

另外两个GIF,PNG也可以改,不过GIF本身质量就不高,改不改看你需要吧。
接着处理加水印的,(不加水印不用改啊)大约412行:

  1. case 2:
  2. imagejpeg($source_handle, $target);
  3. break;
  4. case ‘image/x-png’:
  5. case ‘image/png’:

改为

  1. case 2:
  2. imagejpeg($source_handle, $target,90); //90这个值越高图片质量越好最高为100。(注意前面有个英文“,”号)
  3. break;
  4. case ‘image/x-png’:
  5. case ‘image/png’:

最后在后台批处理图片,重新生成一下即可

 

 

 

  第一:解决首页“新品上架”、“热卖商品”、“精品推荐”栏目里的缩略图模糊:

依次打开Themes/模板文件/library/下的recommend_new.lbi 、recommend_hot.lbi 、recommend_best.lbi ,

将 

<img src="{$goods.thumb}" alt="{$goods.name|escape:html}" class="goodsimg" />  

替换成:

<img src="{$goods.goods_img}" alt="{$goods.name|escape:html}" class="goodsimg" />

    第二:解决产品页(商品页)图片模糊方法:

打开在Themes/模板文件/下打开good.dwt

<img src="{$goods.goods_img}" alt="{$goods.goods_name|escape:html}" width="360px;" height="360px"/>

替换成:

<img src="{$goods.original_img}" alt="{$goods.goods_name|escape:html}" width="360px;" height="360px"/>

 

完毕!
---------------------
作者:lcw2007101
来源:CSDN
原文:https://blog.csdn.net/lcw2007101/article/details/45151561
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

 

 

把商品相册图片也经过缩略处理
找到admin/includes/lib_goods.php
更改函数
function handle_gallery_image($goods_id, $image_files, $image_descs, $image_urls)
{
   
    $proc_thumb = (isset($GLOBALS[\'shop_id\']) && $GLOBALS[\'shop_id\'] > 0)? false : true;
    foreach ($image_descs AS $key => $img_desc)
    {
       
        $flag = false;
        if (isset($image_files[\'error\']))
        {
            if ($image_files[\'error\'][$key] == 0)
            {
                $flag = true;
            }
        }
        else
        {
            if ($image_files[\'tmp_name\'][$key] != \'none\')
            {
                $flag = true;
            }
        }

        if ($flag)
        {
       
       
            $img_url = $GLOBALS[\'image\']->make_thumb($image_files[\'tmp_name\'][$key], $GLOBALS[\'_CFG\'][\'image_width\'],  $GLOBALS[\'_CFG\'][\'image_height\']);
            $img_url = is_string($img_url) ? $img_url : \'\';
            // 生成缩略图
            if ($proc_thumb)
            {      
                $thumb_url = $GLOBALS[\'image\']->make_thumb($image_files[\'tmp_name\'][$key], $GLOBALS[\'_CFG\'][\'thumb_width\'],  $GLOBALS[\'_CFG\'][\'thumb_height\']);
                $thumb_url = is_string($thumb_url) ? $thumb_url : \'\';
            }

            $upload = array(
                \'name\' => $image_files[\'name\'][$key],
                \'type\' => $image_files[\'type\'][$key],
                \'tmp_name\' => $image_files[\'tmp_name\'][$key],
                \'size\' => $image_files[\'size\'][$key],
            );
            if (isset($image_files[\'error\']))
            {
                $upload[\'error\'] = $image_files[\'error\'][$key];
            }
            $img_original = $GLOBALS[\'image\']->upload_image($upload);
            if ($img_original === false)
            {
                sys_msg($GLOBALS[\'image\']->error_msg(), 1, array(), false);
            }
           
          
            if (!$proc_thumb)
            {
                $thumb_url = $img_original;
            }
            // 如果服务器支持GD 则添加水印
            if ($proc_thumb && gd_version() > 0)
            {
                $pos        = strpos(basename($img_url), \'.\');
                $newname    = dirname($img_url) . \'/\' . $GLOBALS[\'image\']->random_filename() . substr(basename($img_url), $pos);
                copy(\'../\' . $img_url, \'../\' . $newname);
                $img_url    = $newname;

                $GLOBALS[\'image\']->add_watermark(\'../\'.$img_url,\'\',$GLOBALS[\'_CFG\'][\'watermark\'], $GLOBALS[\'_CFG\'][\'watermark_place\'], $GLOBALS[\'_CFG\'][\'watermark_alpha\']);
            }

           
            $img_original = reformat_image_name(\'gallery\', $goods_id, $img_original, \'source\');
            $img_url = reformat_image_name(\'gallery\', $goods_id, $img_url, \'goods\');
            $thumb_url = reformat_image_name(\'gallery_thumb\', $goods_id, $thumb_url, \'thumb\');
            $sql = "INSERT INTO " . $GLOBALS[\'ecs\']->table(\'goods_gallery\') . " (goods_id, img_url, img_desc, thumb_url, img_original) " .
                    "VALUES (\'$goods_id\', \'$img_url\', \'$img_desc\', \'$thumb_url\', \'$img_original\')";
            $GLOBALS[\'db\']->query($sql);
           
            if ($proc_thumb && !$GLOBALS[\'_CFG\'][\'retain_original_img\'] && !empty($img_original))
            {
                $GLOBALS[\'db\']->query("UPDATE " . $GLOBALS[\'ecs\']->table(\'goods_gallery\') . " SET img_original=\'\' WHERE `goods_id`=\'{$goods_id}\'");
                @unlink(\'../\' . $img_original);
            }
        }
        elseif (!empty($image_urls[$key]) && ($image_urls[$key] != $GLOBALS[\'_LANG\'][\'img_file\']) && ($image_urls[$key] != \'http://\') && copy(trim($image_urls[$key]), ROOT_PATH . \'temp/\' . basename($image_urls[$key])))
        {
           // $image_url = trim($image_urls[$key]);

            //定义原图路径
            $down_img = ROOT_PATH . \'temp/\' . basename($image_url);

            // 生成缩略图
            if ($proc_thumb)
            {
                $thumb_url = $GLOBALS[\'image\']->make_thumb($down_img, $GLOBALS[\'_CFG\'][\'thumb_width\'],  $GLOBALS[\'_CFG\'][\'thumb_height\']);
                $thumb_url = is_string($thumb_url) ? $thumb_url : \'\';
                $thumb_url = reformat_image_name(\'gallery_thumb\', $goods_id, $thumb_url, \'thumb\');
            }

            //改动
            $image_url = $GLOBALS[\'image\']->make_thumb($down_img, $GLOBALS[\'_CFG\'][\'thumb_width\'],  $GLOBALS[\'_CFG\'][\'thumb_height\']);
            $image_url = is_string($image_url) ? $image_url : \'\';
            $image_url = reformat_image_name(\'gallery\', $goods_id, $image_url, \'goods\');
           
            //---改变结束
           
            if (!$proc_thumb)
            {
                $thumb_url = htmlspecialchars($image_url);
            }

           
           // $img_url = $img_original = htmlspecialchars($image_url);
           $img_original = htmlspecialchars($image_url);
          
          
            $sql = "INSERT INTO " . $GLOBALS[\'ecs\']->table(\'goods_gallery\') . " (goods_id, img_url, img_desc, thumb_url, img_original) " .
                    "VALUES (\'$goods_id\', \'$img_url\', \'$img_desc\', \'$thumb_url\', \'$img_original\')";
            $GLOBALS[\'db\']->query($sql);

            @unlink($down_img);
        }
    }
}