Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon de mettre en œuvre le recadrage, la mise à l'échelle et le filigrane d'images à l'aide du framework thinkPHP

Explication détaillée de la façon de mettre en œuvre le recadrage, la mise à l'échelle et le filigrane d'images à l'aide du framework thinkPHP

墨辰丷
墨辰丷original
2018-05-25 09:26:211877parcourir

Cet article présente principalement la méthode de recadrage, de mise à l'échelle et de filigrane du framework thinkPHP. Il fournit également les fonctions personnalisées de thinkPHP pour le recadrage, la mise à l'échelle et le filigrane des images sous forme d'exemples auxquels les amis peuvent se référer.

Cet article décrit comment le framework thinkPHP implémente le recadrage, la mise à l'échelle et le filigrane des images. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

La fonction de traitement d'image ThinkPHP nécessite une police de filigrane de texte, vous pouvez trouver la police requise dans le Panneau de configuration de Windows > Grande icône (coin supérieur droit) > Police

/**
* 图像的裁剪、缩放、加水印
* @param string $path    路径
* @param int $width   裁剪的宽度/限制的高度或宽度,当有$height值时此值为图片的宽度,否则为限制的宽度或高度
* @param int $height   [可选]裁剪的高度
* @param boolean $water   [可选]是否加水印
* @param int $word    [可选]水印文字
*/
function zoom_image($path,$width = 300,$height = null,$water = null,$word = 'water'){
  $image = new \Think\Image();
  $image->open($path);
  $imgWidth = $image->width();
  $imgHeight = $image->height();
  // 限制尺寸
  if($width and !$height){
    $maxSize = $width;
    // 宽度或高度大于规定尺寸时
    if($imgWidth > $maxSize or $imgHeight > $maxSize){
      $size = image_min_width($imgWidth,$imgHeight,$maxSize);
      $image->thumb($size['width'], $size['height']);
      $do = true;
      $dowater = true;
    }
  // 裁剪固定尺寸
  }else if($width and $height){
    $size = image_min_width($imgWidth,$imgHeight,$width);
    $image->thumb($size['width'], $size['height'])->crop($width, $height);
    $do = true;
    $dowater = true;
  }
  if($dowater and $water and $word){
    $image->text($word,'./Public/images/arial.ttf',20,'#dddddd', \Think\Image::IMAGE_WATER_SOUTHEAST,-10);
  }
  // 未操作则不保存
  if($do){
    $image->save($path);
  }
}

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

phpRecadrerÉtapes détaillées pour définir l'image à une taille fixe

image phprecadrage et exemples d'utilisation de vignettes

PHP recadrage

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn