2017年12月16日 星期六

解決ecshop縮略圖以及產品頁圖模糊的方法

 ecshop上傳商品圖片默認生成jpg縮略圖或商品圖的質量是80,這些圖片看起來有點模糊,客戶非常不滿意,現提供調整生成jpg圖片的質量,解決Ecshop商品縮略圖不清晰的方法。
找到includes/cls_image.php文件,在大約250行
程序代碼 程序代碼
/* 生成文件 */
if (function_exists(『imagejpeg』))
{
  $filename .= 『.jpg』;
  imagejpeg($img_thumb, $dir . $filename);
}


改為
程序代碼 程序代碼
/* 生成文件 */
if (function_exists(『imagejpeg』))
{
  $filename .= 『.jpg』;
  imagejpeg($img_thumb, $dir . $filename, 96);
}


這樣應該足夠清晰了,這裡允許0-100的範圍,不寫默認是80的質量。修改後圖像質量有所提高,但和原圖還有區別,還要修改admin/goods.php 文件,大約在613行:
程序代碼 程序代碼
// 如果系統支持GD,縮放商品圖片,且給商品圖片和相冊圖片加水印
if ($proc_thumb && $image->gd_version() > 0 && $image->check_img_function($_FILES['goods_img']['type']))
{
     // 如果設置大小不為0,縮放圖片
     if ($_CFG['image_width'] != 0 || $_CFG['image_height'] != 0)
     {
  $goods_img = $image->make_thumb(『../』. $goods_img , $GLOBALS['_CFG']['image_width'],  $GLOBALS['_CFG']['image_height']);
  if ($goods_img === false)
  {
      sys_msg($image->error_msg(), 1, array(), false);
  }
}


改為:
程序代碼 程序代碼
// 如果系統支持GD,縮放商品圖片,且給商品圖片和相冊圖片加水印

if ($image->gd_version() > 0 && $image->check_img_function($_FILES['goods_img']['type']) &&$_FILES['goods_img']['width'] > $GLOBALS['_CFG']['image_width'] &&$_FILES['goods_img']['height'] > $GLOBALS['_CFG']['image_height'])
{
     // 如果設置大小不為0,縮放圖片
     if ($_CFG['image_width'] != 0 || $_CFG['image_height'] != 0)
     {
  $goods_img = $image->make_thumb(『../』. $goods_img , $GLOBALS['_CFG']['image_width'], $GLOBALS['_CFG']['image_height']);
  if ($goods_img === false)
  {
      sys_msg($image->error_msg(), 1, array(), false);
  }
}


同時到後台,系統設置-》商店設置-》顯示設置:把商品圖片寬度,高度設置成一樣,圖像質量就不會變化了。

產品頁第一張圖片模糊的問題主要是由後台開啟了上傳商品自動生成相冊圖功能引起的。 商店設置--顯示設置裡面有一項  上傳商品是否自動生成相冊圖: 這個選項默認是打開的,也就是默認是選擇 是 ;這樣的話您在上傳商品圖片時就在商品相冊裡面自動生成一張相冊圖片(跟你上傳的原圖是同一張圖,只是圖片質量不同而已);選擇否的話在商品相冊裡面就不生成此圖,如果該商品有商品相冊圖片,那需要您單獨上傳;如果您不單獨上傳商品相冊圖(且將上傳商品是否自動生成相冊圖:設置為 否),那麼在模版中系統就認為此商品沒有商品相冊,(實際確實是沒有,因為默認生成的開關你關了而且你有沒單獨上傳相冊圖,哪兒來的相冊圖了?)所以商品相冊模塊就不顯示!所以 在後台 商店設置--顯示設置裡面 上傳商品是否自動生成相冊圖: 設置為 否; 然後單獨上傳上傳圖片就可以解決商品第一張圖片模糊的問題。

另一種解決產品頁第一張圖片模糊的問題的方法是修改代碼,用原始圖替代這張縮略圖來顯示。在模板文件夾下的goods.dwt文件,找到
程序代碼 程序代碼
<div class="good_img">
   <a href="javascript:;" onclick="window.open('gallery.php?id={$goods.goods_id}'); return false;" >
      <img src="{$goods.goods_img}" alt="{$goods.goods_name|escape:html}" id="goodsimg" style="width:340px;" />
   </a>
</div>


改成
程序代碼 程序代碼
<div class="good_img">
   <a href="javascript:;" onclick="window.open('gallery.php?id={$goods.goods_id}'); return false;" >
      <img src="{$goods.original_img}" alt="{$goods.goods_name|escape:html}" id="goodsimg" style="width:340px;" />
   </a>
</div>


這樣產品頁第一張圖片模糊問題可以解決了。 

沒有留言:

張貼留言