Как уменьшить масштаб картинки в css
Перейти к содержимому

Как уменьшить масштаб картинки в css

  • автор:

Обрезка, изменение размера или поворот изображения в приложении «Просмотр» на Mac

Вы можете поворачивать изображения, открытые в приложении «Просмотр», и менять их размер в соответствии с размерами желаемой области. Вы также можете уменьшать размеры файлов для экономии места на диске или для ускорения загрузки.

Обрезка изображения

Чтобы обрезать изображение, необходимо сначала выбрать область, которую Вы хотите оставить, а затем удалить остальное.

  1. В приложении «Просмотр» на Mac нажмите кнопку «Показать панель инструментов разметки» (если панель инструментов разметки не отображается), затем нажмите кнопку «Выбор прямоугольником» .
  2. Выделите часть страницы, которую хотите сохранить. Чтобы посмотреть размеры выделенной области, выберите «Инструменты» > «Показать Инспектор», затем нажмите кнопку «Инспектор обрезки» и выберите единицы измерения для значений, отображаемых в окне «Инспектора обрезки».
  3. Нажмите кнопку «Обрезать» в панели инструментов разметки (или используйте панель Touch Bar).

Примечание. Чтобы отменить обрезку сразу после применения, нажмите «Правка» > «Отменить обрезку». Чтобы отменить обрезку позже, найдите версию изображения, сохраненную до обрезки. Выберите «Файл» > «Вернуть к объекту» > «Просмотреть все версии», затем выберите версию, которую Вы хотите восстановить.

Изменение размеров изображения

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

Совет. Чтобы изменить размер нескольких изображений одновременно, откройте их в одном и том же окне, затем выделите в боковом меню и нажмите «Инструменты» > «Настроить размер».

Сокращение размера файла изображения

  1. В приложении «Просмотр» на Mac откройте файл, который Вы хотите изменить.
  2. Выберите меню «Вид» > «Настроить размер», затем выберите «Изменить изображение».
  3. Введите меньшее значение в поле «Разрешение». Новый размер отображается внизу.

Совет. Чтобы уменьшить размер файла для нескольких изображений одновременно, откройте их в одном и том же окне, затем выделите в боковом меню и нажмите «Инструменты» > «Настроить размер».

Поворот или зеркальное отображение одного изображения

  1. В приложении «Просмотр» на Mac откройте файл, который Вы хотите изменить.
  2. Выполните любое из указанных действий.
    • Поворот изображения. Выберите изображение, затем нажмите (или воспользуйтесь панелью Touch Bar), чтобы повернуть изображение влево. Нажимайте еще, чтобы продолжать поворачивать. Чтобы повернуть изображение вправо, нажмите клавишу Option и, удерживая ее нажатой, нажимайте до нужного угла поворота.
    • Зеркальное отражение изображения. В меню «Инструменты» нажмите пункт «Перевернуть горизонтально» или «Перевернуть вертикально».

Совет. Чтобы повернуть или отразить несколько изображений одновременно, откройте их в одном и том же окне, нажмите «Вид» > «Миниатюры», затем выделите нужные изображения в боковом меню и нажмите «Инструменты» > «Повернуть» или «Перевернуть».

Как уменьшить размер картинки в 1C Битрикс

В настройках модуля «Управление структурой» (Настройки -> Настройки продукта -> Настройки модулей -> Управление структурой) вкладка «Медиабиблиотека» можно задать максимальный размер, загружаемых в медиабиблиотеку файлов.

Настройки медиабиблиотеки

В этом случае, уже при загрузке элементов в медиабиблиотеку, они будут автоматически пропорционально уменьшены, чтобы вписаться в ранее указанный размер изображения.

Загрузка в медиабиблиотеку

В примере исходный размер изображения 894×824 пикселя, после загрузки 500×460 пикселей. Медиабиблиотека обычно используется для хранения изображений, которые выводятся в превью и детальном описании элементов инфоблоков, на основе которых работают большинство разделов сайта.

Изменение размера картинки в инфоблоке

Для изменения размера загружаемого изображения в элемент инфоблока, можно дописать дополнительную функцию и подвесить её вызов на события добавления OnBeforeIBlockElementAdd и обновления OnBeforeIBlockElementUpdate элементов инфоблока.

Для этого в файле /local/php_interface/init.php (создать, если файла нет) добавим такой код:

 /** * Проверка и оптимизация файла * @param $arFields * @return false|void */ function checkSizeAndResize(&$arFields) < //Максимальный размер картинок $maxWidth = 500; $maxHeight = 500; // массив ошибок $msg = []; // проверяем, инфоблок, в котором сохораняется картинка. if($arFields['IBLOCK_ID'] == IBLOCK_ID_PRODUCTS) < // получаем размеры временного файла $file = \CFile::GetImageSize($arFields['DETAIL_PICTURE']['tmp_name']); // если получены размеры. if ($file !== false && is_array($file))< // проверяем ширину if ($file[0] >$maxWidth) < $msg[] = 'Максимальная ширина изображений '. $maxWidth .'px. Ширина загружаемого файла '.$file[0].' px'; >// проверяем высоту if ($file[1] > $maxHeight) < $msg[] = 'Максимальная высота изображений '. $maxHeight .'px. Высота загружаемого файла '.$file[1].' px'; >// если были ошибки if (is_array($msg)) < global $APPLICATION; //Масштабируем файл $arNewFile = \CIBlock::ResizePicture($arFields['DETAIL_PICTURE'], [ 'WIDTH' =>$maxWidth, 'HEIGHT' => $maxHeight, 'METHOD' => 'resample', ]); if(is_array($arNewFile))< $arFields['DETAIL_PICTURE'] = $arNewFile; $strMsg = implode('
', $msg); //Выводим доп.уведомления из $msg > else < //Можно вернуть ошибку $APPLICATION->throwException('Ошибка масштабирования файла'); return false; > > > > > //Подвесим обработчик на события добавления и обнволения элемента AddEventHandler('iblock', 'OnBeforeIBlockElementAdd', 'checkSizeAndResize'); AddEventHandler('iblock', 'OnBeforeIBlockElementUpdate', 'checkSizeAndResize');

Тут мы получаем размер детальной картинки DETAIL_PICTURE , проверяем его и масштабируем перед сохранением элемента до нужных нам размеров. Таким же образом можно проверить и исправить любые другие загружаемые изображения.

Размер файла до сохранения элемента

Загружаем исходный файл, обратите внимание на размер. И результат:

Размер файла после сохранения элемента

Всё отработало как надо.

Изменение размера картинки на лету

Ещё одним вариантом изменения размера картинки в 1С Битрикс, будет ресайз на лету. Т.е. в инфоблок может быть загружена картинка любого, удобного вам размера, а уже в шаблоне, перед тем как показать её пользователю, она будет обрабатываться и создаваться её оптимизированная копия, которая кешируется на определённое время, это метод CFile::ResizeImageGet().

 \CFile::ResizeImageGet($photo, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL, true, false, false, 100); 

Примнимаen ID зарегистрирована в таблице файлов изображения, массив размером, способ обработки, наиболее часто используется BX_RESIZE_IMAGE_PROPORTIONAL который уменьшает изображение пропорционально, пока оно не попадёт в заданный размер, несколько массивов для пост обработки, а так же показатель качества для jpg изображений, в данном примере качество равно 100. Чем меньше тем легче будет итоговая картинка и хуже качество.

В своей работе, я использую такую функцию обёртку:

 /** * Ресайз изображения с проверкой атрибутов * @param $photo id картинки или массив содержащий id * @param $wi ширина * @param $hi высота * @param $mode тип масштабирования при ресайзе (обрезать изображение или пропорционально уменьшать) * @return mixed */ function ResizeImage($photo, $wi, $hi, $mode) < if(is_array($photo)) $photo = $photo["ID"]; if($wi >0 && $hi > 0) < $arPhoto = CFile::ResizeImageGet($photo, Array("width" =>$wi, "height" => $hi), ($mode ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL), true, false, false, 100); $src = $arPhoto["src"]; > else < $arPhoto = CFile::GetFileArray($photo); $src = $arPhoto["SRC"]; >return $src; > 

Достаточно передать массив, например $arResult[‘PREVIEW_PICTURE’] или ID файла, размер и опцию $mode, если true, то картинка будет уменьшена по первой возможно стороне и обрезана по второй. Функция используется в шаблонах компонентов, прямо в атрибуте src изображений.

Как в CSS масштабировать спрайты?

Если вам кажется, что для уменьшения размера иконки вам понадобится отдельное изображение, то вы ошибаетесь. И вот почему:

Как уменьшить размер CSS спрайта?

Для начала давайте вспомним что такое спрайты и зачем они вообще делаются:
CSS спрайт – это способ объединить несколько изображения в одно, чтобы уменьшить кол-во запросов к серверу и уменьшить размер страницы.

Как это выглядит вы уже поняли из превью этой статьи �� . Обычная запись бекграунда со спрайтовым изображением выглядит так:

.ico-soc < background: url('../img/icons_sprite.webp') no-repeat 0 0; display: inline-block; vertical-align: middle; width: 40px; height: 40px; border-radius: 50px; >

То есть, общее изображение и стили у нас будут одинаковыми, но по второму классу мы будем менять позицию:

.ico-soc.ico-soc-fb

Теперь представим ситуацию, когда иконка будет идентичная, но чуть меньше в размерах. Чтобы не увеличивать размер файла мы добавляем новое правило для таких случаев:

.ico-soc-mini < background: url('../img/icons_sprite.webp') no-repeat 0 0; display: inline-block; vertical-align: middle; width: 30px; height: 30px; border-radius: 50px; transition: 0.3s all; zoom: 0.75; -moz-transform: scale(0.75); -moz-transform-origin: 0 0; >

В .ico-soc-mini – уменьшился размер с 40px до 30px. Значит – в процентах это -25%, именно эту величину мы отобразили в соответствующем свойстве – 0.75. Меняются только zoom и -moz-transform.

Давайте теперь уменьшим до 20px:

.ico-soc-minimal < background: url('../img/icons_sprite.webp') no-repeat 0 0; display: inline-block; vertical-align: middle; width: 20px; height: 20px; border-radius: 50px; transition: 0.3s all; zoom: 0.5; -moz-transform: scale(0.5); -moz-transform-origin: 0 0; >

Теперь 0.5, думаю вы понимаете почему.

Таким вот образом, используя одно и тоже изображение, и не добавляя в него уменьшенные иконки, мы при помощи CSS просто создаем разные правила.

Используете ли вы такой метод в своих проектах? Или у вас есть решение получше? �� Если да, делитесь им в комментариях.

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Читайте також:

Залишити відповідь Скасувати відповідь

Щоб відправити коментар вам необхідно авторизуватись.

Изменить размер изображения (уменьшить в 2 раза)

Author24 — интернет-сервис помощи студентам

Нужно что-бы картинка, была в половину своей высоты и ширины, при этом мы ее заранее не знаем. Пытался сделать с помощью jscript, но видимо руки не оттуда ростут..

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 "http://www.w3.org/TR/REC-html40/loose.dtd"> html> head> title>/title> meta http-equiv="Content-Language" content="ru"> meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> meta name="author" content=""> meta name="generator" content="Web Development Studio (http://delphiworld.narod.ru)"> link rel="stylesheet" type="text/css" href="style.css"> /head> body aligh="center"> div id="center">img src="img.jpg" alt="Моя улюблена картинка" id="myImg">/div> script language="JavaScript" type="text/javascript">   document.images.myImg.width = document.images.myImg.width / 2; //--> /script> /body> /html>
1 2 3 4

#center
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Уменьшить размер изображения
Привет всем! Есть вопрос. Достаю изображение из базы данных в виде base64String. Функцией.

Подскажите как уменьшить размер изображения на выходе
Вот есть скрипт который создаёт с mp4 gif изображение. но на выходе получаеться большой файл как.

Увеличить размер изображения в два раза с сохранением количества пикселей
Необходимо рисунок 250х250 визуально увеличить и засунуть в picture box размером 500х500, т.е.

Изменить размер изображения
Думаю тема избита на нет, но я не могу догнать. Один модератор подробно показал как делать в этой.

1915 / 1065 / 384
Регистрация: 06.12.2008
Сообщений: 2,802
я может вас не правильно, но делается все средствами html

1 2 3
html> img src="img.jpeg" width=50% height=50%> /html>

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

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

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

Добавлено через 3 минуты

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

html> head> link rel=«stylesheet» type=«text/css» href=«style.css»> /head> body aligh=«center»> div align=«center»>div id=«main»> div id=«center»>a href=«proba1.html»>img src=«img.jpg» alt=«Моя улюблена картинка» id=«myImg»>/a>/div> document.images.myImg.width = document.images.myImg.width / 2; //—> /script> a href=«mailto:read@write.com.ua»>Моя пошта/a> /div>/div> /body> /html> #center < color : green; text-align : center; >#main < width : 800px; >a : link < text-decoration : underline; color : blue; >a : active < text-decoration : underline; color : blue; >a : hover < text-decoration : none; color : green; >a : visited

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

Регистрация: 26.02.2010
Сообщений: 95
я не спец в css.
но может так можно?)

1 2 3 4 5
table border="1"> tr width="200"> td align="center" width="200" height="200" valign="middle">ваша картинка/td> /tr> /table>

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
эээ. размер изображения заведомо неизвестен
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
делаем так

1 2 3 4 5 6 7 8 9 10
script type="text/javascript" language="javascript"> function small() < var w=document.images[0].width; var h=document.images[0].height; document.images[0].width=w*0.5; document.images[0].height=h*0.5; >/script> div id="center">img src="img.jpg" alt="Моя улюблена картинка" id="myImg" onLoad="small()">/div>

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

Nazz, не подскажите, как обратиться к изображению не через масив изображений а через id ? У меня на форме гораздо больше изображений

WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2

лутше обращайтесь через имена

form name="form1">img src="" name="myimg">/form>
document.form1.myimg.width

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

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

Добавлено через 41 секунду
а так можно:

document.all.myimg.width

WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2

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

Добавлено через 39 секунд
точно не знаю. попробуйте, может и получится))

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

вышло
дело, в том, что я раньше так делал, да вот год уже не занимался и все что я знал — на смарку..

WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
Nazz, можете напомнить как завести масивчик для имен файлов, что-бы сделать «мини-галерею»?
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2

можно зделать так:

1 2 3 4 5
var i; var n= //количество изображений for(i=1;in;i++) eval('document.form1.myimg'+i+'.visibility="visible"'); }

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5

Сейчас разберусь с CSS покажу более детально что именно я пытаюсь зделать, но суть в том, что при клике на картунку изменьть ее URL на следующий в очереди.
Для хочу завести масив, который отвечает за имена переменный, и при щелчке на картинке увеличить индекс по которому берется имя картинки типа:

1 2 3 4
var i = 0, n = 20; var mas = ["begin.jpg", "someImg.jpg",. ,"end.jpg"];//масив с именами i = (i+1)%n; eval("document.all.myImg.src="+mas[i]);

но для этого переменная-индекс должна быть статической на все время выполнения программы
WEB-developer
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2

вот посмотрите готовый код. Только здесь при клике на соответствующую кнопочку изменяется изображение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
html> head> title> Заміна зображень з їх попереднім завантаженням /title> script type="text/javascript" language="javascript"> imgslide=new Array(); imgslide[0]=new Image(); imgslide[1]=new Image(); imgslide[2]=new Image(); imgslide[3]=new Image(); imgslide[0].src="https://www.cyberforum.ru/html/1.jpg"; imgslide[1].src="https://www.cyberforum.ru/html/2.jpg"; imgslide[2].src="https://www.cyberforum.ru/html/3.jpg"; imgslide[3].src="https://www.cyberforum.ru/html/4.jpg"; numimg=0; numimg1=3; function go() < document.form1.img.src=imgslide[numimg].src; numimg++; if (numimg==4) numimg=0; >//=========================================================================== function back() < document.form1.img.src=imgslide[numimg1].src; numimg1--; if (numimg1==0) numimg1=3; >/script> /head> body bgcolor="#00ffff"> form name="form1"> img src="5.jpg" name="img" width="200" height="200" border="1">/center> br/> input type="button" value="Вперед" onclick="go()"> input type="button" value="Назад" onclick="back()"> /center> /form> /body> /html>

1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
Часть страницы

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
div class="text"> h3>Доброго дня!/h3> p>Ви знаходитесь на домашній сторінці Ковтуна Руслана Олександровича. Якщо ви вважаєте, що не знайомі з цією людиною багано покинути дану сторінку./p> p>Тим хто вирішим дізнатись про мене більше інформації: читайте нижче../p> h3>Декілька слів про себе/h3> h3>Фотогалерея/h3> p>Для того, щоб переглянути всі фотокартки користуйтесь книпками переходу/p> img src="\images\1.jpg" alt="Натисніть для перегляду наступної світлини" name="myImg" style="clear:both;" width="535px" onClick="next()"> input type="button" value="Наступна" style="float:left" onClick="next()"> input type="button" value="Попередня" style="float:right" onClick="prev()"> div style="clear:both"> /div> h3>Контактна інформація/h3> /div>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
var now = 0, n = 5; var mas = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"]; function next() { n++; if (n == 5) n = 0; document.all.myImg.src = "F:\VNTU\Robocha_Profesija\LABY_VCE_09\lab 42\images\" + mas[now]; alert("Was action next"); > function prev()   n--; if (!n) n = 4; document.all.myImg.src = "F:\VNTU\Robocha_Profesija\LABY_VCE_09\lab 42\images\" + mas[now]; alert("Was action prev"); >

Добавлено через 1 минуту
все понял, мне форум помог, точнее подсветка систаксиса вспомнил о экранирующих символах

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *