public function test()
 {
     echo "\ttesting class_image...\n";
     $objImage = new class_image();
     $objImage->setIntHeight(10);
     $objImage->setIntWidth(10);
     $objImage->createBlankImage();
     $objColor = $objImage->registerColor(0, 0, 0);
     $objImage->drawFilledRectangle(0, 0, 10, 10, $objColor);
     if (!is_dir(_realpath_ . "/files/images/samples/")) {
         $objFS = new class_filesystem();
         $objFS->folderCreate("/files/images/samples/", true);
     }
     $objImage->saveImage("/files/images/samples/testimage.JPG");
     echo "\tloading an image from the samplecontent\n";
     $strImage = "/files/images/samples/testimage.JPG";
     //$strImage = "<img src=\""._webpath_."/portal/pics/upload/samples/IMG_3000.JPG\"/>";
     echo "\timage: " . $strImage . "\n";
     $objImage = new class_image();
     $objImage->preLoadImage($strImage);
     //resize the image
     echo "\tresizing the image to 150 x 150\n";
     $objImage->resizeImage(150, 150, 0, true);
     $objImage->saveImage("", true);
     $strResizeCacheName1 = $objImage->getCachename();
     $this->assertNotEquals($strResizeCacheName1, "", __FILE__ . " getCachenameAfterResize");
     echo "\tcachename: " . $strResizeCacheName1 . "\n";
     echo "<img src=\"" . _webpath_ . _images_cachepath_ . $strResizeCacheName1 . "\"/>";
     $this->assertFileExists(_realpath_ . _images_cachepath_ . $strResizeCacheName1, __FILE__ . " getCachenameAfterResize");
     echo "\treplay test...\n";
     echo "\timage: " . $strImage . "\n";
     $objImage = new class_image();
     $objImage->preLoadImage($strImage);
     //resize the image
     echo "\tresizing the image to 150 x 150\n";
     $objImage->resizeImage(150, 150, 0, true);
     $objImage->saveImage("", true);
     $strResizeCacheName2 = $objImage->getCachename();
     $this->assertEquals($strResizeCacheName2, $strResizeCacheName2, __FILE__ . " getCachenameAfterResize");
     echo "\tcachename: " . $strResizeCacheName2 . "\n";
     //echo "<img src=\""._webpath_._images_cachepath_.$strResizeCacheName2."\"/>";
     $this->assertFileExists(_realpath_ . _images_cachepath_ . $strResizeCacheName2, __FILE__ . " getCachenameAfterResize");
     echo "\tresize & text...\n";
     echo "\timage: " . $strImage . "\n";
     $objImage = new class_image("test1020");
     $objImage->preLoadImage($strImage);
     //resize the image
     $objImage->resizeImage(150, 150, 0, true);
     $objImage->imageText("test", 10, 20);
     $objImage->saveImage("", true);
     $strResizeCacheName3 = $objImage->getCachename();
     $this->assertTrue($strResizeCacheName3 != "", __FILE__ . " getCachenameAfterResize&Text");
     echo "\tcachename: " . $strResizeCacheName3 . "\n";
     echo "<img src=\"" . _webpath_ . _images_cachepath_ . $strResizeCacheName3 . "\"/>";
     $this->assertFileExists(_realpath_ . _images_cachepath_ . $strResizeCacheName3, __FILE__ . " getCachenameAfterResize");
     echo "\tresize & text...\n";
     echo "\timage: " . $strImage . "\n";
     $objImage = new class_image("test2030");
     $objImage->preLoadImage($strImage);
     //resize the image
     $objImage->resizeImage(150, 150, 0, true);
     $objImage->imageText("test", 20, 30);
     $objImage->saveImage("", true);
     $strResizeCacheName4 = $objImage->getCachename();
     $this->assertNotEquals($strResizeCacheName3, $strResizeCacheName4, __FILE__ . " getCachenameAfterResize&Text");
     echo "\tcachename: " . $strResizeCacheName3 . "\n";
     echo "<img src=\"" . _webpath_ . _images_cachepath_ . $strResizeCacheName4 . "\"/>";
     $this->assertFileExists(_realpath_ . _images_cachepath_ . $strResizeCacheName4, __FILE__ . " getCachenameAfterResize");
     echo "\ttest image overlay.\n";
     $objImage = new class_image("overlay" . $strResizeCacheName4);
     $objImage->preLoadImage($strImage);
     $objImage->resizeAndCropImage(300, 300, 300, 300);
     $objImage->overlayImage(_images_cachepath_ . $strResizeCacheName4, 10, 10, true);
     $objImage->saveImage("", true);
     $strResizeCacheName5 = $objImage->getCachename();
     echo "\tcachename: " . $strResizeCacheName5 . "\n";
     echo "<img src=\"" . _webpath_ . _images_cachepath_ . $strResizeCacheName5 . "\"/>";
     $this->assertFileExists(_realpath_ . _images_cachepath_ . $strResizeCacheName5, __FILE__ . " getCachenameAfterResize");
 }
Esempio n. 2
0
     //2M
     jsonOutput(2, '请上传小余 2M 的图片  0032');
 }
 $upload->save($file['tmp_name'], $file['target']);
 $errorcode = $upload->error();
 if ($errorcode < 0) {
     $data = $upload->errormsg();
     @unlink($file['target']);
     jsonOutput(2, $data);
 }
 //判断是否开启了exif,并获取照片的exif信息
 $my_exif = array();
 if (extension_loaded('exif') && extension_loaded('mbstring')) {
     $my_exif = exif_read_data($file['target'], "EXIF");
 }
 $image = new class_image($file['target']);
 $image->exif = $my_exif;
 $status = $image->Thumb();
 if ($status <= 0) {
     $data = $image->errormsg($status);
     @unlink($file['target']);
     jsonOutput(2, $data);
 }
 $insert = array('uid' => $_B['uid'], 'aid' => 0, 'path' => $file['imgurl'], 'type' => 'article', 'size' => $image->imginfo['size'], 'width' => $image->imginfo['width'], 'height' => $image->imginfo['height'], 'thumbH' => $image->imginfo['thumbH'], 'status' => 0, 'dateline' => TIMESTAMP);
 $aid = J::t('image')->insert($insert, true);
 if (!is_numeric($aid) || $aid <= 0) {
     @unlink($file['target']);
     jsonOutput(2, '上传失败  0071');
 }
 $data['url'] = $_B['siteurl'] . $file['imgurl'] . '.thumb.jpg';
 $data['aid'] = $aid;
Esempio n. 3
0
 /**
  * Places an image on top of another image
  * In case you want to overlay transparent images, use PNGs only
  *
  * @param string $strImage The image to place into the loaded image
  * @param int $intX
  * @param int $intY
  * @param bool $bitCache
  *
  * @return bool
  */
 public function overlayImage($strImage, $intX = 0, $intY = 0, $bitCache = false)
 {
     $bitReturn = false;
     //register for using the caching
     $this->strCacheAdd .= $strImage;
     //Cache?
     if ($bitCache) {
         //create cachename
         $this->strCachename = $this->generateCachename();
         if (is_file(_realpath_ . $this->strCachepath . $this->strCachename)) {
             $this->bitNeedToSave = false;
             return true;
         }
     }
     $this->bitNeedToSave = true;
     //load image
     if ($this->objImage == null && $this->bitPreload) {
         $this->finalLoadImage();
     }
     //load the other image into the system using another instance
     $objOverlayImage = new class_image();
     if ($objOverlayImage->loadImage($strImage)) {
         imagealphablending($this->objImage, true);
         //merge pics
         $objOverlayResource = $objOverlayImage->getImageResource();
         imagealphablending($objOverlayResource, true);
         $bitReturn = imagecopy($this->objImage, $objOverlayResource, $intX, $intY, 0, 0, $objOverlayImage->getIntWidth(), $objOverlayImage->getIntHeight());
         //$bitReturn = imagecopymerge($this->objImage, $objOverlayResource, $intX, $intY, 0, 0, $objOverlayImage->getIntWidth(), $objOverlayImage->getIntHeight(), 100);
     }
     return $bitReturn;
 }