Example #1
0
 /**
  *	@group slow
  */
 public function testIntegrationFaceInserterWorksWithRealTemplateDataObject()
 {
     $app = $this->createApplication();
     $faceInserter = $app->make("FaceInserter");
     $faceImage = Image::make("./tests/FaceInserterTestData/zuckerberg.jpg");
     $modelInstance = new TemplateData();
     $modelInstance->face_spot_placement_x = 443;
     $modelInstance->face_spot_placement_y = 40;
     $modelInstance->compatibile_face_image_width = 317;
     $modelInstance->compatibile_face_image_height = 282;
     $modelInstance->template_image_filename = 'real_template.png';
     $modelInstance->save();
     $retrievedFromDatabase = TemplateData::find(1);
     $result = $faceInserter->pasteFaceOverTemplate($faceImage, $retrievedFromDatabase);
     $result->save("./tests/FaceInserterTestData/real_template_data_result_from_database.jpg");
 }
Example #2
0
 public function pasteFaceOverTemplate(\Intervention\Image\Image $faceImage, \Kubek\ImageManipulator\Models\TemplateData $templateData)
 {
     // resize the image so it fits into the spot it needs to be pasted in:
     $faceImage = $faceImage->resize($templateData->getCompatibileFaceImageWidth(), $templateData->getCompatibileFaceImageHeight());
     // create an empty image the size of the template
     $fittingFaceImageCanvas = Image::canvas($templateData->getTemplateWidth(), $templateData->getTemplateHeight());
     // paste the fitting face image onto the empty canvas on coords specified in the TemplateData:
     $fittingFaceImageCanvas->insert($faceImage, 'top-left', $templateData->getFaceSpotPlacementX(), $templateData->getFaceSpotPlacementY());
     // paste the template overlay over the canvas with the face image:
     return $fittingFaceImageCanvas->insert($templateData->getTemplateImage());
 }