function render($id, $size = null) { if (!$id) { throw new Exception("invalid id"); } $gfs = $this->getGfs(); $image = $gfs->get(new MongoId($id)); if (!$image) { throw new Exception('Image not found'); } if ($size && $size != 'sn') { // Сͼ³ß´ç $sizes = $this->getSize($size); if (!$sizes) { throw new Exception("invalid size"); } // Éú³ÉСͼ $content = makeThumbBytes($image->getBytes(), $sizes['w'], $sizes['h'], $sizes['m']); } else { $content = $image->getBytes(); } // ´æͼƬ $file = $this->fileCache($content, $id, $size); if ($this->isWaterMark && $file && $size != 'sn') { // ¼Óˮӡ //waterMark($file, 'rb'); if ($this->waterCC) { waterMark($file, 'cc', 50); } if ($this->waterRB) { waterMark($file, 'rb', 100); } } // show image showImgByte(file_get_contents($file)); }
<?php // $source_info = imagecreatefromjpeg("./0000.jpg"); // $img = imagecreatefromjpeg("./0001.jpg"); // // imagecopymerge($source_info, $img, 10, 10, 5, 5, 50, 50, 100); // // header("content-type:image/jpg"); // echo "<pre>"; // print_r($source_info); // var_dump($img); function waterMark($fileInHD, $wmFile, $transparency = 50, $jpegQuality = 90, $margin = 5) { $wmImg = imageCreateFromJPEG($wmFile); $jpegImg = imageCreateFromJPEG($fileInHD); // Water mark random position $wmX = (bool) rand(0, 1) ? $margin : imageSX($jpegImg) - imageSX($wmImg) - $margin; $wmY = (bool) rand(0, 1) ? $margin : imageSY($jpegImg) - imageSY($wmImg) - $margin; // Water mark process imageCopyMerge($jpegImg, $wmImg, $wmX, $wmY, 0, 0, imageSX($wmImg), imageSY($wmImg), $transparency); // Overwriting image ImageJPEG($jpegImg, $fileInHD, $jpegQuality); } waterMark('./0000.jpg', './0001.jpg');