Mencapai kesan menghiris gambar melalui php dan Imagic

PHPz
Lepaskan: 2023-07-29 08:30:02
asal
1489 orang telah melayarinya

Mencapai kesan penghirisan imej melalui php dan Imagick

Dalam pembangunan web, pemprosesan imej adalah keperluan yang sangat biasa. Antaranya, kesan penghirisan gambar adalah kaedah pemprosesan yang sangat biasa. Dengan membahagikan imej besar kepada beberapa imej kecil, masa memuatkan imej boleh dikurangkan dengan berkesan dan kandungan imej boleh dipaparkan dengan lebih fleksibel. Artikel ini akan memperkenalkan cara menggunakan sambungan php dan Imagick untuk mencapai kesan penghirisan imej.

Pertama, kita perlu memastikan bahawa php dan sambungan Imagick dipasang pada pelayan. Jika ia tidak dipasang, anda boleh memasangnya dengan melaksanakan arahan berikut:

# 安装php
sudo apt-get install php

# 安装Imagick扩展
sudo apt-get install php-imagick
Salin selepas log masuk

Seterusnya, kita perlu menyediakan gambar besar sebagai fail sumber hirisan. Dalam contoh ini, kami telah menyediakan imej bernama "source.jpg" sebagai contoh. Anda boleh menggantikannya dengan imej lain mengikut keperluan anda.

Pertama, kita perlu menetapkan saiz dan bilangan kepingan. Dalam contoh ini, kami membahagikan imej kepada kepingan 10x10, untuk sejumlah 100 imej kecil. Anda boleh menyesuaikannya mengikut keperluan anda.

<?php
// 设置切片的尺寸和个数
$width = 10;
$height = 10;
$total = $width * $height;
Salin selepas log masuk

Kemudian, kami menggunakan sambungan Imagick untuk membuka fail sumber dan mendapatkan maklumat lebar dan ketinggian fail sumber.

<?php
// 打开源文件
$imagick = new Imagick('source.jpg');

// 获取源文件的宽度和高度
$srcWidth = $imagick->getImageWidth();
$srcHeight = $imagick->getImageHeight();
Salin selepas log masuk

Seterusnya, kami mengira lebar dan tinggi setiap imej kecil mengikut saiz dan bilangan kepingan.

<?php
// 计算每个小图的宽度和高度
$pieceWidth = $srcWidth / $width;
$pieceHeight = $srcHeight / $height;
Salin selepas log masuk

Kemudian, kami mengulangi kedudukan setiap kepingan dan mengira koordinat kepingan berdasarkan maklumat kedudukan.

<?php
// 遍历每个切片的位置
for ($i = 0; $i < $height; $i++) {
  for ($j = 0; $j < $width; $j++) {
    // 计算切片的坐标
    $x = $j * $pieceWidth;
    $y = $i * $pieceHeight;

    // 创建一个新的Imagick对象来保存切片
    $pieceImagick = new Imagick();

    // 从源文件中抽取切片并保存到新的Imagick对象中
    $pieceImagick->cropImage($pieceWidth, $pieceHeight, $x, $y);
    
    // 保存切片到文件
    $file = 'output/' . $i . '_' . $j . '.jpg';
    $pieceImagick->writeImage($file);
  }
}
Salin selepas log masuk

Akhir sekali, kami menyimpan kepingan ke direktori yang ditentukan. Dalam contoh ini, kami menyimpan kepingan ke direktori "output". Anda boleh mengubah suai laluan direktori mengikut keperluan anda.

Selepas melengkapkan langkah di atas, kesan penghirisan gambar berjaya dicapai. Anda boleh melihat kesan penghirisan dengan mengakses fail penghirisan yang sepadan.

Ringkasan

Artikel ini memperkenalkan cara menggunakan sambungan php dan Imagick untuk mencapai kesan penghirisan imej. Dengan membahagikan imej besar kepada beberapa imej kecil, kecekapan pemuatan imej dapat dipertingkatkan dan kandungan imej boleh dipaparkan dengan lebih fleksibel. Saya harap artikel ini akan membantu anda memahami dan menggunakan sambungan php dan Imagick.

Contoh kod:

<?php
// 设置切片的尺寸和个数
$width = 10;
$height = 10;
$total = $width * $height;

// 打开源文件
$imagick = new Imagick('source.jpg');

// 获取源文件的宽度和高度
$srcWidth = $imagick->getImageWidth();
$srcHeight = $imagick->getImageHeight();

// 计算每个小图的宽度和高度
$pieceWidth = $srcWidth / $width;
$pieceHeight = $srcHeight / $height;

// 遍历每个切片的位置
for ($i = 0; $i < $height; $i++) {
  for ($j = 0; $j < $width; $j++) {
    // 计算切片的坐标
    $x = $j * $pieceWidth;
    $y = $i * $pieceHeight;

    // 创建一个新的Imagick对象来保存切片
    $pieceImagick = new Imagick();

    // 从源文件中抽取切片并保存到新的Imagick对象中
    $pieceImagick->cropImage($pieceWidth, $pieceHeight, $x, $y);
    
    // 保存切片到文件
    $file = 'output/' . $i . '_' . $j . '.jpg';
    $pieceImagick->writeImage($file);
  }
}
?>
Salin selepas log masuk

Nota: Contoh kod di atas adalah untuk tujuan demonstrasi sahaja dan mungkin perlu diubah suai mengikut situasi sebenar.

Atas ialah kandungan terperinci Mencapai kesan menghiris gambar melalui php dan Imagic. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!