1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-28 17:52:12 +01:00
Files
archived-doc-ru/reference/image/functions/imagecopyresized.xml
Sergey Panteleev 6d43fd64d7 Исправление форматирования
[skip-spellcheck]
[skip-lint]
2022-12-27 03:42:36 +03:00

255 lines
9.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 593ea510e853ff034e03f78a4be0daa41661c9d4 Maintainer: tmn Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.imagecopyresized" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>imagecopyresized</refname>
<refpurpose>Копирование и изменение размера части изображения</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>imagecopyresized</methodname>
<methodparam><type>GdImage</type><parameter>dst_image</parameter></methodparam>
<methodparam><type>GdImage</type><parameter>src_image</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_x</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_y</parameter></methodparam>
<methodparam><type>int</type><parameter>src_x</parameter></methodparam>
<methodparam><type>int</type><parameter>src_y</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_width</parameter></methodparam>
<methodparam><type>int</type><parameter>dst_height</parameter></methodparam>
<methodparam><type>int</type><parameter>src_width</parameter></methodparam>
<methodparam><type>int</type><parameter>src_height</parameter></methodparam>
</methodsynopsis>
<para>
<function>imagecopyresized</function> копирует прямоугольный участок одного
изображения на другое изображение.
<parameter>dst_image</parameter> - результирующее изображение,
<parameter>src_image</parameter> - идентификатор исходного изображения.
</para>
<para>
Другими словами, <function>imagecopyresized</function> берет прямоугольный
участок из <parameter>src_image</parameter> с шириной
<parameter>src_width</parameter> и высотой <parameter>src_height</parameter> на
координатах <parameter>src_x</parameter>,<parameter>src_y</parameter> и помещает
его в прямоугольную область изображения <parameter>dst_image</parameter> с
шириной <parameter>dst_width</parameter> и высотой <parameter>dst_height</parameter>
на координатах <parameter>dst_x</parameter>,<parameter>dst_y</parameter>.
</para>
<para>
Если координаты, ширина или высота исходного и конечного изображений различны,
копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого
верхнего угла изображения. Функцию можно использовать для наложения участков
на то же изображение, с которого они скопированы (если
<parameter>dst_image</parameter> имеет то же значение, что и
<parameter>src_image</parameter>), но если участки будут пересекаться, результат
непредсказуем.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dst_image</parameter></term>
<listitem>
<para>&gd.image.destination;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_image</parameter></term>
<listitem>
<para>&gd.image.source;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_x</parameter></term>
<listitem>
<para>
x-координата результирующего изображения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_y</parameter></term>
<listitem>
<para>
y-координата результирующего изображения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_x</parameter></term>
<listitem>
<para>
x-координата исходного изображения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_y</parameter></term>
<listitem>
<para>
y-координата исходного изображения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_width</parameter></term>
<listitem>
<para>
Результирующая ширина.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dst_height</parameter></term>
<listitem>
<para>
Результирующая высота.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_width</parameter></term>
<listitem>
<para>&gd.source.width;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>src_height</parameter></term>
<listitem>
<para>&gd.source.height;</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>dst_image</parameter> и <parameter>src_image</parameter> теперь ожидают экземпляр
<classname>GdImage</classname>;
ранее ожидался ресурс (<type>resource</type>).
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Изменение размера изображения</title>
<para>
В этом примере размер изображения будет уменьшен в два раза.
</para>
<programlisting role="php">
<![CDATA[
<?php
// файл и новый размер
$filename = 'test.jpg';
$percent = 0.5;
// тип содержимого
header('Content-Type: image/jpeg');
// получение нового размера
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// загрузка
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// изменение размера
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// вывод
imagejpeg($thumb);
?>
]]>
</programlisting>
&example.outputs.similar;
<mediaobject>
<alt>Вывод примера: Изменение размера изображения</alt>
<imageobject>
<imagedata fileref="en/reference/image/figures/imagecopyresized.jpg"/>
</imageobject>
</mediaobject>
<para>
Изображение будет выведено с уменьшенным размером. Если требуется получить
изображение в лучшем качестве, используйте функцию
<function>imagecopyresampled</function>.
</para>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Существует проблема связанная с ограничениями палитровых изображений (255+1
цвет). Ресэмплирование или фильтрация изображения требует больше цветов, чем
255. Для расчёта нового пиксела и его цвета применяется некоторое приближение.
В случае палитровых изображений мы пытаемся создать новый цвет, а если это не
удаётся, мы выбираем ближайший (теоретически) вычисленный цвет. Это не всегда
визуально ближайший цвет. Такой подход может давать в результате пустые (или
визуально пустые) изображения. Для устранения этой проблемы, пожалуйста,
используйте truecolor-изображения в качестве результирующих, создаваемые
функцией <function>imagecreatetruecolor</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>imagecopyresampled</function></member>
<member><function>imagescale</function></member>
<member><function>imagecrop</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->