Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как улучшить качество загружаемого изображения


Recommended Posts

Решил проблему с качеством загружаемых картинок. 
При загрузке картинок получался размытый фон и на каталожной съемке (с белым фоном) фон плыл серыми полосами. На форуме предлагалось несколько решений, таких как увеличить качество сжатия до 100 и т.д.  На мой взгляд проблема в компиляторе изображений в самом php. Проблема оказалась не нова в сообществе интернет-магазинов.
Необходимо в файле system/library/image.php после строк 
 

imagecopyresampled($this->image, $image_old, $xpos, $ypos, 0, 0, $new_width, $new_height, $this->info['width'], $this->info['height']);
imagedestroy($image_old); 

 

вставить :

// Это - цвет на который будем заменять (белый)
$colorWhite = imagecolorallocate($this->image, 255, 255, 255);

// Пробегаем все пиксели на изображении по вертикали и горизонтали
for($y=0; $y<($height); ++$y)
  {
	for($x=0; $x<($width); ++$x)
	    {
		$colorat=imagecolorat($this->image, $x, $y);
		$r = ($colorat >> 16) & 0xFF;
		$g = ($colorat >> 8) & 0xFF;
		$b = $colorat & 0xFF;

// Если цвет пикселя нас не устраивает, заменяем его на белый
if((($r == 253)||($r == 254))&&(($g == 253)||($g == 254))&&(($b == 253)||($b == 254))) {
	imagesetpixel($this->image, $x, $y, $colorWhite);
	   }
     }
}

Как видно из кода - чистим скомпилированную картинку в пределах 253,253,253 по RGB, избавляемся от шумов.
Сохраняем. Вауля - проблемы нет.

  • +1 1
Надіслати
Поділитися на інших сайтах


Данный способ работает с вновь загружаемыми картинками - поэтому чтобы поправить свои фото на сайте их необходимом залить через загрузку вновь -удалив старые варианты. И почистить кэшь папки изображений image/cache - удалите от туда все оставив index.html

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Здравствуйте. Надеюсь попал по адресу со своей проблемой.

В общем суть. Сайт заказа товаров онлайн, на главной странице расположены фотки товара и его описание (цена, наименование). При нажатии на саму картинку или название происходит переход на страницу с более детальным описанием товара. Если на этой странице нажать на фото, то в отдельном всплывающем окне будет показана увеличенная вариация этой фотографии. Мне надо что бы при нажатии на изображение открывалось окно, в котором будет фотка с большие разрешением (это получается отдельный файл, специально подготовленный для подобного показа). Но если просто добавить еще одно фото через админку, то добавиться просто 2 файл. А мне этого не надо.

Помогите разобраться как эту задачу решить. Я новичок в OpenCart) Заранее спасибо)

Надіслати
Поділитися на інших сайтах


В карточке товара, при нажатии/ наведении на фото - открывается/показывается исходное изображение, в том качестве в котором вы загрузили на сайт. Если у вас исходное изображение скажем размером 1000x1000 пикселей, а открывается 250x250 то вам надо указать размер открываемого изображения в админке сайта: Настройки - Редактировать - Изображения - Размер всплывающего изображения товара. Если я правильно понял вашу проблему.

Надіслати
Поділитися на інших сайтах


Исходный размер файла 200*200, в админке стоит 500*500. Если грузануть фото к товару разрешением 1000*1000, то теоритически при нажатие на картинку, с настройками в админке 500*500, качество будет значительно лучше.

Надіслати
Поділитися на інших сайтах


Попробую максимально доступно рассказать)))

Есть 2 фото для товара, одна изначально отредактирована в фотошопе под разрешение 200*200, другая 1000*1000. Первая отображается на главной странице, в каталоге товаров. Вторую хотелось бы видел при нажитии или наведении на первую фото, чисто для более детального просмотра самого товара. Как его некое представление в лучшем качестве. Сейчас работает следующем образом, при нажатии на картинку товара, всплывает окно и в нем показана первая картинка, та что с разрешением 200*200, а размер самого всплывающего окна больше и поэтому получается очень не красивая и не четкая картинка.

Вот такая вот история)

Надіслати
Поділитися на інших сайтах


BesPredel63, если картинок не так много, можно вручную заменить кеш тех что 200x200, загрузив в качестве основной 1000x1000 разумеется.
ещё вариант - предоставить сжатие 1000x1000 -> 200x200 браузеру, указав width и height в стилях. некоторых такой вариант устраивает.
или например, поставить уровень сжатия 100, в настройках библиотеки system/library/image.php
либо можно поставить стороннее платное решение которое будет сжимать картинки в лучшем качестве.
это я перечислил все известные мне способы без трюков с выводом картинок разного разрешения, когда в базе хранится две картинки - маленькая и большая

Надіслати
Поділитися на інших сайтах

Решил проблему с качеством загружаемых картинок. 

попиксельно обрабатывать изображение очень медленно.

скиньте мне основное изображение и размер до которых пожать, я покажу как справляется мой модуль сжатия

Надіслати
Поділитися на інших сайтах

BesPredel63, если картинок не так много, можно вручную заменить кеш тех что 200x200, загрузив в качестве основной 1000x1000 разумеется.

ещё вариант - предоставить сжатие 1000x1000 -> 200x200 браузеру, указав width и height в стилях. некоторых такой вариант устраивает.

или например, поставить уровень сжатия 100, в настройках библиотеки system/library/image.php

либо можно поставить стороннее платное решение которое будет сжимать картинки в лучшем качестве.

это я перечислил все известные мне способы без трюков с выводом картинок разного разрешения, когда в базе хранится две картинки - маленькая и большая

Хорошие варианты. Попробую сегодня их применить. Спасибо.

Надіслати
Поділитися на інших сайтах


  • 4 months later...

СТОП! Так ваш метод "исправляет" только цвета, близкие к белому, т.е. к фону? А как быть с основной "вкусняшкой" на фотке? С кофточкой или с пирожком, например?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.