Пример #1
0
 /**
  * 获取文字的描绘对象
  * @param string $font 字体名称或字体路径
  * @param integer $size 字体大小
  * @param string | ImagickPixel $color 字颜色
  * @param float $opacity 文字的透明度,取值范围0(全透明)-1(不透明)
  * @param string | ImagickPixel $underColor 字的背景颜色
  * @return ImagickDraw | false
  */
 public function getDrawForText($font = null, $size = 8, $color = 'transparent', $opacity = 0.58, $underColor = null)
 {
     $draw = new ImagickDraw();
     // $draw->setGravity(Imagick::GRAVITY_CENTER);
     // 特别注意这里了,如果这里设置了文字水印的位置的话,那么在其写入别到文件时就会起作用,且其他设置的坐标都没有用
     if ($font !== null) {
         if (is_file($font)) {
             $draw->setfont($font);
         } else {
             $this->_error = '字体文件不存在';
             return false;
         }
     }
     $draw->setfontsize($size);
     $draw->setFillColor($color);
     $draw->setfillopacity($opacity);
     // 貌似和这个是一样的: $draw->setFillAlpha(0.5);
     if ($underColor !== null) {
         $draw->settextundercolor($underColor);
     }
     // $draw->settextalignment(2); //文字对齐方式,2为居中
     return $draw;
 }
Пример #2
0
 /**
  * 
  * 文字水印
  * @param unknown_type $data
  */
 public function addWaterText($data)
 {
     $draw = new ImagickDraw();
     $this->ImagickPixel = new ImagickPixel();
     $draw->clear();
     $draw->setfont($data['font']);
     $draw->setfontsize($data['size']);
     $this->ImagickPixel->setcolor($data['color']);
     $draw->setfillcolor($data['color']);
     $draw->setfillalpha($data['alpha']);
     $draw->settextalignment(imagick::GRAVITY_NORTHWEST);
     //左对齐
     $draw->annotation($data['pos_x'], $data['pos_y'], $data['literal']);
     $this->srcImg_source->drawimage($draw);
     $draw->destroy();
     return $this->srcImg_source;
 }