1 Востаннє редагувалося ktretyak (10.07.2015 21:58:27)

Тема: Зміна зображень за допомогою PHP

Дійшла черга до створення аватарок і не знаю як краще зробити:

1. яке обмеження ставити для максимального розміру при завантаженні аватарки, за умови що її розмір все одно буде змінено;
2. при зменшенні авки до різних розмірів (розмірів можливо буде варіантів 3-5) не знаю чи зменшувати якість зображення і по чому орієнтуватись при цьому.

Має хтось досвід роботи в цьому плані?

2

Re: Зміна зображень за допомогою PHP

ktretyak написав:

1. яке обмеження ставити для максимального розміру при завантаженні аватарки, за умові що її розмір все одно буде змінено;

Не ставити зовсім?

3

Re: Зміна зображень за допомогою PHP

quez написав:

Не ставити зовсім?

Не думаю, зайвої роботи на боці сервера не потрібно нікому. Цікаво яке як правило ставлять обмеження.

4

Re: Зміна зображень за допомогою PHP

ktretyak написав:
quez написав:

Не ставити зовсім?

Не думаю, зайвої роботи на боці сервера не потрібно нікому. Цікаво яке як правило ставлять обмеження.

На реплейсі обмеження в 147 кіБ. Два рази ставив аватару, два рази довелось її різати вручну. Не робіть такого, дуже незручно.

5

Re: Зміна зображень за допомогою PHP

1-2мб буде добре. Зовсім не ставити обмеження дуже погано - GD дуже сильно займає пам'ять, тому якийсь png розміром 5000x5000 запросто буде вибивати ліміт пам'яті при спробі змінити його розмір.

6

Re: Зміна зображень за допомогою PHP

1мб з головою хватить.

7

Re: Зміна зображень за допомогою PHP

А що до якості зображення, треба її змінювати, чи залишати 100%?

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

  1. 20x20 px

  2. 30x30 px

  3. 38x38 px

  4. 48x48 px

  5. 75x75 px

8

Re: Зміна зображень за допомогою PHP

Ух, награвся я щойно із AJAX завантаженнями аватарок.

Ніяк не міг зрозуміти чому на сервер приходить пустий масив $_FILES, я ж начебто і Content-Type прописую як належить, тобто multipart/form-data, і постом відправляю, і навіть бачу сирий результат в php://input, але ніяк не міг отримати його у $_FILES.

Виявляється треба прописувати Content-Type зі значенням undefined, щоправда, можливо це правило застосовне лише у випадку запитів за допомогою AngularJS. Браузер якимся там чудом сам підставляє правильний Content-Type та якусь там прив'язку...

На сьогодні досить, розберусь детальніше можливо пізніше. Головне, що вже завантаження пішло...

9

Re: Зміна зображень за допомогою PHP

А чом такі малі розміри картинок?

10 Востаннє редагувалося ktretyak (11.07.2015 12:18:21)

Re: Зміна зображень за допомогою PHP

Sensetivity написав:

А чом такі малі розміри картинок?

Ну стосовно 20х20 px, то буду такі авки використовувати в списку учасників в конкретній дискусії, наприклад як це зроблено ось тут http://discourse.kohanaframework.org/.

Стосовно решти розмірів, то вони взяті з найпопулярнішого рушія коментарів, який я знаю - з Disqus.

Оновлено:
А є ще менші, наприклад, на github 16х16, що для мене є взірцем, тому вніс корективи і зменшив відповідно мінімальну авку у себе =)

11

Re: Зміна зображень за допомогою PHP

2х20, а є сенс робити такі маленькі аватари?

12

Re: Зміна зображень за допомогою PHP

А що до якості зображення, треба її змінювати, чи залишати 100%?

очищайте метадані і ставте якість для джіпег 80 %

13

Re: Зміна зображень за допомогою PHP

Раніше звертав увагу на кінцевий розмір авки, а зараз звернув увагу, що частіше беруть максимальну авку і зменшують її розмір до потрібних результатів. Здається реально кращий підхід, бо браузер завантаживши один раз авку буде видавати її кеш і для менших розмірів...

Подякували: quez1

14 Востаннє редагувалося ktretyak (15.07.2015 21:22:29)

Re: Зміна зображень за допомогою PHP

В попередньому повідомленні під "зменшують її розмір до потрібних результатів", я мав на увазі виставляють розмір авки у стилях відображення.

funivan написав:

А що до якості зображення, треба її змінювати, чи залишати 100%?

очищайте метадані і ставте якість для джіпег 80 %

Зараз проглянув, то у Windows провіднику показується десь до трьох десятків різних метаданих. Так а як їх очищати? Продивився бігло список функції GD і сходу так і не побачив чим можна це зробити.

Оновлено:
І ще одне: в ідеалі на вході мати пару-трійку форматів картинки, а на виході отримувати один певний формат. Ви не в курсі чи це запросто зробити?