Обрезка аватара под квадратный вид

Обрезка аватара под квадратный вид

#1 3 июля 2011 в 10:44
Привет!
Small аватары пользователей обрезаются пропорционально его оригинальному размеру из-за чего все модуляи, плагины и т.п. с участием аватаров пользователей — получаются кривыми.
Недавно нашёл тему, где указывалось как сделать, чтобы маленький аватар обрезался под квадратный вид, из-за этого все small аватары были бы одинакового размера.
Но это дополнение обрезают аватары только новых пользователей, т.е. аватарки, которые были до включения этого дополнения остались прежними.
Вопрос: можно ли как то теперь сделать этот small аватар квадратного вида всем, а не только новым пользователям?
#2 3 июля 2011 в 10:51
Квадратные аватарки. Открываем файл: components / users / frontend.php
Ищем вот это:
  1. /////////////////////////////// AVATAR UPLOAD //////////////////////////////////////////
  2. if ($do=='avatar'){
Ниже ищем вот это:
  1. @img_resize($uploadfile, $uploadavatar, $medw, $medh);
  2. @img_resize($uploadfile, $uploadthumb, $smallw, $smallw);
И во второй строке перед закрывающей скобкой ставим это:, true
Должно получиться вот так:
  1. @img_resize($uploadfile, $uploadavatar, $medw, $medh);
  2. @img_resize($uploadfile, $uploadthumb, $smallw, $smallw, true);
Квадратными будут только новые аватарки.
Старые аватарки лучше не делать квадратными, так как они уже в оригинальных пропорциях.
Можно принудительно их зделать квадратными. Тогда они будут квадратные, но изображение будет сплюснутое.
#3 3 июля 2011 в 11:03

изображение будет сплюснутое

Можно поподробней, как это сделать?
Мне нужно сделать сейчас все аватары квадратными, по вышеуказанным причинам.
Нужно сделать их всех одинаковым размером.

А про то, как сделать новые аватары квадратными — это я знаю уже :)
#5 3 июля 2011 в 23:25

Можно поподробней, как это сделать?
Мне нужно сделать сейчас все аватары квадратными, по вышеуказанным причинам.
Нужно сделать их всех одинаковым размером.

Artyom Agalakov
Прочитайте еще instantcms.ru/forum/thread7238.html
#6 4 июля 2011 в 00:19

Прочитайте еще instantcms.ru/forum/thread7238.html

От туда я вычитал, как обрезать аватарки новым пользователям.
Я про другое же уже.
Как сделать размер small аватаров (приплюснутым) одинаковый у всех?
#7 4 июля 2011 в 00:40
задайте ему явный размер (квадратный) в функции function usrImageNOdb в файле /components/users/includes/usercore.php
#8 4 июля 2011 в 01:02

От туда я вычитал, как обрезать аватарки новым пользователям.

Artyom Agalakov
странно, я и старым так изменил размер) правда они не приплюснутые получаются а пропорционально вписанные в заданные размеры! просто в нужном шаблоне добавил стили с нужным размером
Это я выводил в юзер меню аватар — так нужно было задать определенный размер…
#9 4 июля 2011 в 01:08
uavip, если стили применять к span-у, то они, естественно, просто обрезаются (это к процитированной теме к последнему посту)…
#10 4 июля 2011 в 01:26

то они, естественно, просто обрезаются

• Mike •
не совсем понял — они не будут учитываться?
у меня просто именно так работает) 1.8
#11 4 июля 2011 в 01:31
я про то, что аватарки не искажаются, а обрезаются, потому что стиль применен не к самому изображению, а к контейнеру коим является span…
#12 4 июля 2011 в 01:35

я про то, что аватарки не искажаются, а обрезаются, потому что стиль применен не к самому изображению, а к контейнеру коим является span…

• Mike •
Дак в принципе это то что и нужно ТС (это ведь лучше искажения!) или возможно, я его не правильно понял)

кстати если спан в css прописать так
  1. .my1_avatar a img {
  2. width: 100px;
  3. height: 100px;
  4. }
то картинки искажаются!!!
#13 4 июля 2011 в 02:15
потому что относятся к имиджу он последним указан в селекторе css…
(точнее селектор расшифровывается так: выбрать объекты с классом class="my1_avatar" в которых есть тег <a> включающий <img> и применить к нему(последнему) правило…)
#14 4 июля 2011 в 10:34
Это только у меня что ли — только у новых пользователей аватарки обрезаются?
#15 4 июля 2011 в 11:24

задайте ему явный размер (квадратный) в функции function usrImageNOdb в файле /components/users/includes/usercore.php

• Mike •
  1.  
  2. function usrImageNOdb($user_id, $small='', $usr_imageurl, $usr_is_deleted, $width="64px", $height="64px", $custom_cls=''){
  3. if ($user_id == -1) { return '<img border="0" class="usr_img_small" src="/images/messages/update.jpg" />'; }
  4. if ($user_id == -2) { return '<img border="0" class="usr_img_small" src="/images/messages/massmail.jpg" />'; }
  5. if ($usr_imageurl){
  6. if($usr_is_deleted){
  7. if ($small=='small'){
  8. return '<img border="0" class="usr_img_small" src="/images/users/avatars/small/noprofile.jpg" />';
  9. } else {
  10. return '<img border="0" class="usr_img'.$custom_cls.'" width="'.$width.'" height="'.$height.'" src="/images/users/avatars/noprofile.jpg" />';
  11. }
  12. } else {
  13. if ($usr_imageurl && @file_exists($_SERVER['DOCUMENT_ROOT'].'/images/users/avatars/'.$usr_imageurl)){
  14. if ($small=='small'){
  15. return '<img border="0" class="usr_img_small" src="/images/users/avatars/small/'.$usr_imageurl.'" />';
  16. } else {
  17. return '<img border="0" class="usr_img'.$custom_cls.'" width="'.$width.'" height="'.$height.'" src="/images/users/avatars/'.$usr_imageurl.'" />';
  18. }
  19. } else {
  20. if ($small=='small'){ return '<img border="0" class="usr_img_small" src="/images/users/avatars/small/nopic.jpg" />';
  21. } else { return '<img border="0" class="usr_img'.$custom_cls.'" width="'.$width.'" height="'.$height.'" src="/images/users/avatars/nopic.jpg" />'; }
  22. }
  23. }
  24. } else {
  25. if ($small=='small'){ return '<img border="0" class="usr_img_small" src="/images/users/avatars/small/nopic.jpg" />';
  26. } else { return '<img border="0" class="usr_img'.$custom_cls.'" width="'.$width.'" height="'.$height.'" src="/images/users/avatars/nopic.jpg" />'; }
  27. }
  28. }
  29.  
квадратными (64px x 64px) с искажениями будут все аватарки которые генерируются этой функцией и старые и новые…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.