PHP - Watermark Help
not sure what i am doing wrong but when i try to call this watermark function i get "query failed" "included failed" errors which doesnt happen unless i call the function.
maybe someone can sort out my code so that it uploads the watermark correctly http://www.plus2net.com/php_tutorial/gd-water.php upoad.php <?php include("include/session.php"); $caption = $_POST['caption']; $target_path = "gallery/"; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); $file_path = basename( $_FILES['uploadedfile']['name']); $file_size = basename( $_FILES['uploadedfile']['size']); $username = $session->username; $time = $session->time; if ($file_size > '4194304'){ //echo 'error '. $file_size; header('Location: gallery.php?id=error'); } else { if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { $location_height=300; // Location of water mark $location_width=300; // Location of water mark $add="gallery/$file_path"; // Source directory location $add2="destination/$file_name"; // Destination directory location $water_img="wtt7.gif"; // Water Image file //echo "The file ". basename( $_FILES['uploadedfile']['name']). //" has been uploaded<br><br>Link: <a href=\"http://www.thetastingroomokc.com/gallery/". basename( $_FILES['uploadedfile']['name']) ."\">http://www.thetastingroomokc.com/gallery/". basename( $_FILES['uploadedfile']['name']) ."</a>"; mysql_query("INSERT INTO gallery VALUES ('', '$username', '$time', '$caption' , '$file_path' )"); //echo $file_size.' is how big your file is. It was transferred.'; header('Location: gallery.php'); } else{ // echo "There was an error uploading the file, please try again!"; } } ?> Similar Tutorialshi guys i need some help i am trying to create a resized image with a watermark, from an uploaded image.. the image is getting uploaded and resized but the watermark doesnt appear correct. instead of a transparent watermark, there's a black square in it's place. this is my code Code: [Select] $tempfile = $_FILES['filename']['tmp_name']; $src = imagecreatefromjpeg($tempfile); list($origWidth, $origHeight) = getimagesize($tempfile); // creating png image of watermark $watermark = imagecreatefrompng('../imgs/watermark.png'); // getting dimensions of watermark image $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // placing the watermark $dest_x = $origWidth / 2 - $watermark_width / 2; $dest_y = $origHeight / 2 - $watermark_height / 2; imagecopyresampled($src, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $origWidth, $origHeight); imagealphablending($src, true); imagealphablending($watermark, true); imagejpeg($src,$galleryPhotoLocation,100); // $galleryPhotoLocation is correct. the image gets uploaded successfully.. Hi I am using this script for water marking images from here http://911-need-code-help.blogspot.com/2008/11/watermark-your-images-with-another.html which works great. I also tried using this resizer here http://911-need-code-help.blogspot.com/2008/10/resize-images-using-phpgd-library.html because it works great too but trying to get both of them to work together wasn't working for me. The 2 codes are very similar and the farthest I got was being able to produce 2 images at the same time "one watermarked and one resized" I could never actually get it to resize and then watermark. I ended up using another piece of code that i found and and it seems to work great for resizing after the image is watermarked but not before. I keep trying to resize it before the watermark and nothing works for me. Anyone know what i can do to achieve this? or get the 2 scripts in the links above to flow together? Here is my working code for watermarking then resizing. //-------------------------------- // CREATE WATERMARK FUNCTION //-------------------------------- define( 'WATERMARK_OVERLAY_IMAGE', 'http://localhost/d.png' ); define( 'WATERMARK_OVERLAY_OPACITY', 70 ); define( 'WATERMARK_OUTPUT_QUALITY', 90 ); function create_watermark( $source_file_path, $output_file_path ) { list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path ); if ( $source_type === NULL ) { return false; } switch ( $source_type ) { case IMAGETYPE_GIF: $source_gd_image = imagecreatefromgif( $source_file_path ); break; case IMAGETYPE_JPEG: $source_gd_image = imagecreatefromjpeg( $source_file_path ); break; case IMAGETYPE_PNG: $source_gd_image = imagecreatefrompng( $source_file_path ); break; default: return false; } $overlay_gd_image = imagecreatefrompng( WATERMARK_OVERLAY_IMAGE ); $overlay_width = imagesx( $overlay_gd_image ); $overlay_height = imagesy( $overlay_gd_image ); imagecopymerge( $source_gd_image, $overlay_gd_image, floor(($source_width - $overlay_width) / 2), floor(($source_height - $overlay_height) / 2), 0, 0, $overlay_width, $overlay_height, WATERMARK_OVERLAY_OPACITY ); /* Right corner imagecopymerge( $source_gd_image, $overlay_gd_image, $source_width - $overlay_width, $source_height - $overlay_height, 0, 0, $overlay_width, $overlay_height, WATERMARK_OVERLAY_OPACITY ); */ imagejpeg( $source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY ); imagedestroy( $source_gd_image ); imagedestroy( $overlay_gd_image ); } //-------------------------------- // FILE PROCESSING FUNCTION //-------------------------------- define( 'UPLOADED_IMAGE_DESTINATION', '/xampp/htdocs/admin/original/' ); define( 'PROCESSED_IMAGE_DESTINATION', '/xampp/htdocs/images/' ); define( 'THUMBNAIL_IMAGE_DESTINATION', '/xampp/htdocs/images/' ); function process_image_upload( $Field ) { $temp_file_path = $_FILES[ $Field ][ 'tmp_name' ]; $temp_file_name = $_FILES[ $Field ][ 'name' ]; list( , , $temp_type ) = getimagesize( $temp_file_path ); if ( $temp_type === NULL ) { return false; } switch ( $temp_type ) { case IMAGETYPE_GIF: break; case IMAGETYPE_JPEG: break; case IMAGETYPE_PNG: break; default: return false; } $rand=time(); $dash = "-"; $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $rand . $dash . $temp_file_name; $processed_file_path = PROCESSED_IMAGE_DESTINATION . $rand . $dash . preg_replace( '/\\.[^\\.]+$/', '.jpg', $temp_file_name ); // $uploaded_image_path = UPLOADED_IMAGE_DESTINATION . $temp_image_name; move_uploaded_file( $temp_file_path, $uploaded_file_path ); $result = create_watermark( $uploaded_file_path, $processed_file_path ); //This is where its does the resize.. include 'test.php'; $image = new Resize_Image; $image->new_width = 350; $image->new_height = 350; $image->image_to_resize = "$processed_file_path"; // Full Path to the file $image->ratio = true; // Keep Aspect Ratio? // Name of the new image (optional) - If it's not set a new will be added automatically $image->new_image_name = 'sunset_wallpaper_thumbnail'; //Path where the new image should be saved. If it's not set the script will output the image without saving it $image->save_folder = '/xampp/htdocs/images/'; $process = $image->resize(); if($process['result'] && $image->save_folder) { echo 'The new image ('.$process['new_file_path'].') has been saved.'; } //End of resize if ( $result === false ) { return false; } else { return array( $uploaded_file_path, $processed_file_path ); } } //-------------------------------- // END OF FUNCTIONS //-------------------------------- $result = process_image_upload( 'photo' ); if ( $result === false ) { echo '<br>An error occurred during file processing.'; } else { echo "<h1>Submission Successful</h1>"; echo "You will now be redirected back to the last page you visited. Thanks!"; //echo "<meta http-equiv='refresh' content='2;URL=/admin/'>"; } what am i doing wrong? my watermark function won't work but i am calling the function right i think. if (move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { watermark($file_path,$watermark,'png'); mysql_query("INSERT INTO gallery VALUES ('', '$username', '$time', '$caption' , '$file_path' )"); //echo $file_size.' is how big your file is. It was transferred.'; header('Location: gallery.php'); } I want my watermark password field to say password and not be written in all asterisks. I know that this is because I am using type=password on my input field. I'm not sure how to make the type be text while displaying the password in asterisks. You can see the problem on my site at http://network.jasonbiondo.com Here is the code: Code: [Select] <div id="username"> <input id="username-field" class="loginFields" type="text" name="username" title="Username" value="Username" /> <script type="text/javascript"> //<![CDATA[ document.getElementById('username-field').onfocus = function() { if (this.value == 'Username') this.value=''; }; document.getElementById('username-field').onblur = function() { if (this.value == '') this.value = 'Username'; }; //]]> </script> </div> <div id="password"> <input id="password-field" class="loginFields" type="password" name="password" title="Password" value="Password" /> <script type="text/javascript"> //<![CDATA[ document.getElementById('password-field').onfocus = function() { if (this.value == 'Password') this.value=''; }; document.getElementById('password-field').onblur = function() { if (this.value == '') this.value = 'Password'; }; //]]> </script> </div> I want to watermark a simple TEXT line on some images (ie: "SAMPLE") I have successfully created a working code and using imagettftext and the PHP manual, I have summized that the coordinates 0,0 will essentially place the beginning of the text at the top left corner of my image. This would remain the same regardless of the image size or shape. Are there coordinates that will consistently designate the lower-right corner? Do the coordinates change for horizontals and verticals; large files and small?
I had a similar posting regarding positioning of a 2nd watermark on an uploaded video. I have resoled that successfully - thanks again for the help. Now, the watermarks look clear/sharp on a small screen, but when the screen is enlarged the images don't seem as sharp/clear. What is the trick? Solution? Is it to have a large image to begin with? The watermark.png currently is 98px w by 16px h. Here is a portion of the file code:
$watermark_image_full_path = "watermark.png"; // demo Video $video_time = ''; $demo_video = ''; if ($pt->config->demo_video == 'on' && !empty($data_insert['sell_video'])) { $have_demo = false; if (!empty($duration_file['playtime_seconds']) && $duration_file['playtime_seconds'] > 0) { $video_time = round((10 * round($duration_file['playtime_seconds'],0)) / 100,0); $video_time = '-t '.$video_time.' -async 1'; $have_demo = true; } } // demo Video $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -i '.$watermark_image_full_path.' -filter_complex "scale=640:-2, scale=640:-2, overlay=10:10, overlay=170:170:enable=between(t\,5\,5+2)" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_240.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_240p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'converted' => 1, '240p' => 1, 'video_location' => $filepath . "_240p_converted.mp4" )); if ($pt->config->queue_count > 0) { $db->where('video_id',$insert)->delete(T_QUEUE); } if ($video_res >= 3840) { $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -i '.$watermark_image_full_path.' -filter_complex "scale=640:-2, scale=640:-2, overlay=10:10, overlay=170:170:enable=between(t\,5\,5+2)" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_4096.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_4096p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '4096p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()). "_video_4096p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=3840:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 2048) { $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -i '.$watermark_image_full_path.' -filter_complex "scale=640:-2, scale=640:-2, overlay=10:10, overlay=170:170:enable=between(t\,5\,5+2)" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_2048.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_2048p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '2048p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_2048p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=2048:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 1920 || $video_res == 0) { $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -i '.$watermark_image_full_path.' -filter_complex "scale=640:-2, scale=640:-2, overlay=10:10, overlay=170:170:enable=between(t\,5\,5+2)" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_1080.' 2>&1'; $shell = shell_exec($ffmpegCommand); any assistance is appreciated Hello everyone. I have a report generator for my database and for some reason it is putting a watermark of our company logo in the middle of each page. I have attached the code for the beginning of the script that makes the PDF generator work. Maybe you can find where it should be removed because I am not finding it.
<style> table{ display: table; border-collapse: collapse; border:1.5px solid #74b9f0; font-size: 12.5px; width:100%; } .no_border tr,td{ border:none; border:hidden; /* background:none; */ border:1.5px solid white; } table tr:nth-child(even) { /*(even) or (2n 0)*/ background: #f1f6ff; } table tr:nth-child(odd) { /*(odd) or (2n 1)*/ background: white; } th{text-align:left;font-weight:normal;color:#990a10;width:110px;border:0.4px solid #74b9f0;height:24px;} .title{color:black;} td{border:0.4px solid #74b9f0;height:24px;} .label{text-align:left;font-weight:normal;color:#990a10;width:110px;height:24px;} </style> <?php $StudentInfo = StudentInfo::model()->findByPk($student_transaction[0]->student_transaction_student_id); $AcademicTermPeriod = AcademicTermPeriod::model()->findByPk($student_transaction[0]->academic_term_period_id); $AcademicTerm = AcademicTerm::model()->findByPk($student_transaction[0]->academic_term_id); if($student_transaction[0]->student_transaction_nationality_id != null) $Nationality = Nationality::model()->findByPk($student_transaction[0]->student_transaction_nationality_id); else $Nationality = new Nationality; $Batch = Batch::model()->findByPk($student_transaction[0]->student_transaction_batch_id); $Course = Course::model()->findByPk($student_transaction[0]->course_id); if($student_transaction[0]->student_transaction_languages_known_id != null) $LanguagesKnown = LanguagesKnown::model()->findByPk($student_transaction[0]->student_transaction_languages_known_id); if($student_transaction[0]->student_transaction_student_address_id != null) $StudentAddress = StudentAddress::model()->findByPk($student_transaction[0]->student_transaction_student_address_id); else $StudentAddress = new StudentAddress; if($student_transaction[0]->student_transaction_parent_id != null || $student_transaction[0]->student_transaction_parent_id != 0) $parent = ParentLogin::model()->findByPk($student_transaction[0]->student_transaction_parent_id); else $parent = new ParentLogin; ?> <h3 class="title">CALL RECORDS SUMMARY</h3> <table class="no_border"> </table> This topic has been moved to Third Party PHP Scripts. http://www.phpfreaks.com/forums/index.php?topic=319561.0 I've got a script that auto-puts watermark on images code: Code: [Select] <?php //get stuff $src = $_SERVER['DOCUMENT_ROOT'].'/'.$_GET['src']; $watermarkSRC = 'img/wm.png'; header('Content-type: image/jpeg'); //create watermark $watermark = imagecreatefrompng($watermarkSRC); //wm dimensions $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); $image = imagecreatetruecolor($watermark_width, $watermark_height); //border $border=25; //some crappy logic if(strpos($src,'.gif') !== false) { $image = imagecreatefromgif($src); } elseif(strpos($src,'.jpeg') !== false || strpos($src,'.jpg') !== false) { $image = imagecreatefromjpeg($src); } elseif(strpos($src,'.png') !== false) { $image = imagecreatefrompng($src); } else { exit("Your image is not a gif, jpeg or png image. Sorry."); } //image dimensions $width=ImageSx($image); $height=ImageSy($image); //lets make a border $img_adj_height=$height+$border; $square=imagecreatetruecolor($width,$img_adj_height); //border + image imagecopyresampled($square, $image, 0, 0, 0, 0, $width, $img_adj_height, $width, $img_adj_height); //watermark placement $dest_x = $width - $watermark_width - 5; $dest_y = $img_adj_height - $watermark_height - 5; //border + watermark imagecolortransparent($watermark,imagecolorat($watermark,0,0)); imagecopyresampled($square, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $watermark_width, $watermark_height); //wrap up imagejpeg($square, "", 100); imagedestroy($image); imagedestroy($watermark); ?> and I want to change it so the watermark will be in a border with the transparent or white background instead of black how can I do that? The web video script that I'm using, and trying to modify, works successfully integrating a watermark in the upper left corner of the video file, (so that when it's downloaded, the watermark stays on the video). In the ffmpeg php file code below, the watermarking starts with this line $watermark_image_full_path = "watermark.png"; at line 275 (out of 504 - about halfway). I am wondering if there might be a way to make the watermark also display briefly in another location on the video again, maybe halfway through, when playing it.
<?php if (IS_LOGGED == false || $pt->config->upload_system != 'on') { $data = array( 'status' => 400, 'error' => 'Not logged in' ); echo json_encode($data); exit(); } else if ($pt->config->ffmpeg_system != 'on') { $data = array( 'status' => 402 ); echo json_encode($data); exit(); } else { $getID3 = new getID3; $featured = ($user->is_pro == 1) ? 1 : 0; $filesize = 0; $error = false; if (PT_IsAdmin() && !empty($_POST['is_movie']) && $_POST['is_movie'] == 1) { if (empty($_POST['movie_title']) || empty($_POST['movie_description']) || empty($_FILES["movie_thumbnail"]) || empty($_POST['stars']) || empty($_POST['producer']) || empty($_POST['country']) || empty($_POST['quality']) || empty($_POST['rating']) || !is_numeric($_POST['rating']) || $_POST['rating'] < 1 || $_POST['rating'] > 10 || empty($_POST['release']) || empty($_POST['category']) || !in_array($_POST['category'], array_keys($pt->movies_categories))) { $error = $lang->please_check_details; } // $cover = getimagesize($_FILES["movie_thumbnail"]["tmp_name"]); // if ($cover[0] > 400 || $cover[1] > 570) { // $error = $lang->cover_size; // } } else{ $request = array(); $request[] = (empty($_POST['title']) || empty($_POST['description'])); $request[] = (empty($_POST['tags']) || empty($_POST['video-thumnail'])); if (in_array(true, $request)) { $error = $lang->please_check_details; } else if (empty($_POST['video-location'])) { $error = $lang->video_not_found_please_try_again; } else if (($pt->config->sell_videos_system == 'on' && $pt->config->who_sell == 'pro_users' && $pt->user->is_pro) || ($pt->config->sell_videos_system == 'on' && $pt->config->who_sell == 'users') || ($pt->config->sell_videos_system == 'on' && $pt->user->admin)) { if (!empty($_POST['set_p_v']) || $_POST['set_p_v'] < 0) { if (!is_numeric($_POST['set_p_v']) || $_POST['set_p_v'] < 0 || (($pt->config->com_type == 0 && $_POST['set_p_v'] <= $pt->config->admin_com_sell_videos)) ) { $error = $lang->video_price_error." ".($pt->config->com_type == 0 ? $pt->config->admin_com_sell_videos : 0); } } } else { $request = array(); $request[] = (!in_array($_POST['video-location'], $_SESSION['uploads']['videos'])); $request[] = (!in_array($_POST['video-thumnail'], $_SESSION['ffempg_uploads'])); $request[] = (!file_exists($_POST['video-location'])); if (in_array(true, $request)) { $error = $lang->error_msg; } } } if (empty($error)) { $file = $duration_file = $getID3->analyze($_POST['video-location']); $duration = '00:00'; if (!empty($file['playtime_string'])) { $duration = PT_Secure($file['playtime_string']); } if (!empty($file['filesize'])) { $filesize = $file['filesize']; } $video_res = (!empty($file['video']['resolution_x'])) ? $file['video']['resolution_x'] : 0; $video_id = PT_GenerateKey(15, 15); $check_for_video = $db->where('video_id', $video_id)->getValue(T_VIDEOS, 'count(*)'); if ($check_for_video > 0) { $video_id = PT_GenerateKey(15, 15); } if (PT_IsAdmin() && !empty($_POST['is_movie']) && $_POST['is_movie'] == 1) { $thumbnail = 'upload/photos/thumbnail.jpg'; if (!empty($_FILES['movie_thumbnail']['tmp_name'])) { $file_info = array( 'file' => $_FILES['movie_thumbnail']['tmp_name'], 'size' => $_FILES['movie_thumbnail']['size'], 'name' => $_FILES['movie_thumbnail']['name'], 'type' => $_FILES['movie_thumbnail']['type'] ); $file_upload = PT_ShareFile($file_info); $thumbnail = PT_Secure($file_upload['filename'], 0); // if (!empty($file_upload['filename'])) { // $thumbnail = PT_Secure($file_upload['filename'], 0); // $upload = PT_UploadToS3($thumbnail); // } } } else{ $thumbnail = PT_Secure($_POST['video-thumnail'], 0); if (file_exists($thumbnail)) { $upload = PT_UploadToS3($thumbnail); } } $category_id = 0; $convert = true; $thumbnail = substr($thumbnail, strpos($thumbnail, "upload"), 120); // ****************************** if (PT_IsAdmin() && !empty($_POST['is_movie']) && $_POST['is_movie'] == 1) { $link_regex = '/(http\:\/\/|https\:\/\/|www\.)([^\ ]+)/i'; $i = 0; preg_match_all($link_regex, PT_Secure($_POST['movie_description']), $matches); foreach ($matches[0] as $match) { $match_url = strip_tags($match); $syntax = '[a]' . urlencode($match_url) . '[/a]'; $_POST['movie_description'] = str_replace($match, $syntax, $_POST['movie_description']); } $data_insert = array( 'title' => PT_Secure($_POST['movie_title']), 'category_id' => PT_Secure($_POST['category']), 'stars' => PT_Secure($_POST['stars']), 'producer' => PT_Secure($_POST['producer']), 'country' => PT_Secure($_POST['country']), 'movie_release' => PT_Secure($_POST['release']), 'quality' => PT_Secure($_POST['quality']), 'duration' => $duration, 'description' => PT_Secure($_POST['movie_description']), 'rating' => PT_Secure($_POST['rating']), 'is_movie' => 1, 'video_id' => $video_id, 'converted' => '2', 'size' => $filesize, 'thumbnail' => $thumbnail, 'user_id' => $user->id, 'time' => time(), 'registered' => date('Y') . '/' . intval(date('m')) ); if (!empty($_POST['buy_price']) && is_numeric($_POST['buy_price']) && $_POST['buy_price'] > 0) { $data_insert['sell_video'] = PT_Secure($_POST['buy_price']); } } else{ $link_regex = '/(http\:\/\/|https\:\/\/|www\.)([^\ ]+)/i'; $i = 0; preg_match_all($link_regex, PT_Secure($_POST['description']), $matches); foreach ($matches[0] as $match) { $match_url = strip_tags($match); $syntax = '[a]' . urlencode($match_url) . '[/a]'; $_POST['description'] = str_replace($match, $syntax, $_POST['description']); } if (!empty($_POST['category_id'])) { if (in_array($_POST['category_id'], array_keys(get_object_vars($pt->categories)))) { $category_id = PT_Secure($_POST['category_id']); } } $video_privacy = 0; if (!empty($_POST['privacy'])) { if (in_array($_POST['privacy'], array(0, 1, 2))) { $video_privacy = PT_Secure($_POST['privacy']); } } $age_restriction = 1; if (!empty($_POST['age_restriction'])) { if (in_array($_POST['age_restriction'], array(1, 2))) { $age_restriction = PT_Secure($_POST['age_restriction']); } } $sub_category = 0; if (!empty($_POST['sub_category_id'])) { $is_found = $db->where('type',PT_Secure($_POST['category_id']))->where('lang_key',PT_Secure($_POST['sub_category_id']))->getValue(T_LANGS,'COUNT(*)'); if ($is_found > 0) { $sub_category = PT_Secure($_POST['sub_category_id']); } } $continents_list = array(); if (!empty($_POST['continents-list'])) { foreach ($_POST['continents-list'] as $key => $value) { if (in_array($value, $pt->continents)) { $continents_list[] = $value; } } } $data_insert = array( 'video_id' => $video_id, 'user_id' => $user->id, 'title' => PT_Secure($_POST['title']), 'description' => PT_Secure($_POST['description']), 'tags' => PT_Secure($_POST['tags']), 'duration' => $duration, 'video_location' => '', 'category_id' => $category_id, 'thumbnail' => $thumbnail, 'time' => time(), 'registered' => date('Y') . '/' . intval(date('m')), 'featured' => $featured, 'converted' => '2', 'size' => $filesize, 'privacy' => $video_privacy, 'age_restriction' => $age_restriction, 'sub_category' => $sub_category, 'geo_blocking' => (!empty($continents_list) ? json_encode($continents_list) : '') ); if (!empty($_POST['set_p_v']) && is_numeric($_POST['set_p_v']) && $_POST['set_p_v'] > 0) { $data_insert['sell_video'] = PT_Secure($_POST['set_p_v']); } if ( ($pt->config->approve_videos == 'on' && !PT_IsAdmin()) || ($pt->config->auto_approve_ == 'no' && $pt->config->sell_videos_system == 'on' && !PT_IsAdmin() && !empty($data_insert['sell_video'])) ) { $data_insert['approved'] = 0; } } // ****************************** $insert = $db->insert(T_VIDEOS, $data_insert); if ($insert) { $delete_files = array(); if (!empty($_SESSION['ffempg_uploads'])) { if (is_array($_SESSION['ffempg_uploads'])) { foreach ($_SESSION['ffempg_uploads'] as $key => $file) { if ($thumbnail != $file) { $delete_files[] = $file; unset($_SESSION['ffempg_uploads'][$key]); } } } } if (!empty($delete_files)) { foreach ($delete_files as $key => $file2) { unlink($file2); } } if (isset($_SESSION['ffempg_uploads'])) { unset($_SESSION['ffempg_uploads']); } $data = array( 'status' => 200, 'video_id' => $video_id, 'link' => PT_Link("watch/$video_id") ); ob_end_clean(); header("Content-Encoding: none"); header("Connection: close"); ignore_user_abort(); ob_start(); header('Content-Type: application/json'); echo json_encode($data); $size = ob_get_length(); header("Content-Length: $size"); ob_end_flush(); flush(); session_write_close(); if (is_callable('fastcgi_finish_request')) { fastcgi_finish_request(); } if ($pt->config->queue_count > 0) { $process_queue = $db->getValue(T_QUEUE,'video_id',$pt->config->queue_count); } if ( (count($process_queue) < $pt->config->queue_count && !in_array($video_id, $process_queue)) || $pt->config->queue_count == 0) { if ($pt->config->queue_count > 0) { $db->insert(T_QUEUE, array('video_id' => $insert, 'video_res' => $video_res, 'processing' => 2)); } $ffmpeg_b = $pt->config->ffmpeg_binary_file; $filepath = explode('.', $_POST['video-location'])[0]; $time = time(); $full_dir = str_replace('ajax', '/', __DIR__); $video_output_full_path_240 = $full_dir . $filepath . "_240p_converted.mp4"; $video_output_full_path_360 = $full_dir . $filepath . "_360p_converted.mp4"; $video_output_full_path_480 = $full_dir . $filepath . "_480p_converted.mp4"; $video_output_full_path_720 = $full_dir . $filepath . "_720p_converted.mp4"; $video_output_full_path_1080 = $full_dir . $filepath . "_1080p_converted.mp4"; $video_output_full_path_2048 = $full_dir . $filepath . "_2048p_converted.mp4"; $video_output_full_path_4096 = $full_dir . $filepath . "_4096p_converted.mp4"; $video_file_full_path = $full_dir . $_POST['video-location']; $watermark_image_full_path = "watermark.png"; // demo Video $video_time = ''; $demo_video = ''; if ($pt->config->demo_video == 'on' && !empty($data_insert['sell_video'])) { $have_demo = false; if (!empty($duration_file['playtime_seconds']) && $duration_file['playtime_seconds'] > 0) { $video_time = round((10 * round($duration_file['playtime_seconds'],0)) / 100,0); $video_time = '-t '.$video_time.' -async 1'; $have_demo = true; } } // demo Video //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=426:-2 -crf 26 $video_output_full_path_240 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_240.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_240p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'converted' => 1, '240p' => 1, 'video_location' => $filepath . "_240p_converted.mp4" )); if ($pt->config->queue_count > 0) { $db->where('video_id',$insert)->delete(T_QUEUE); } if ($video_res >= 3840) { //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=3840:-2 -crf 26 $video_output_full_path_4096 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_4096.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_4096p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '4096p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()). "_video_4096p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=3840:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 2048) { //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=2048:-2 -crf 26 $video_output_full_path_2048 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_2048.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_2048p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '2048p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_2048p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=2048:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 1920 || $video_res == 0) { //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=1920:-2 -crf 26 $video_output_full_path_1080 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_1080.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_1080p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '1080p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_1080p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=1920:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 1280 || $video_res == 0) { //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=1280:-2 -crf 26 $video_output_full_path_720 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_720.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_720p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '720p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_720p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=1280:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 854 || $video_res == 0) { //$shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=854:-2 -crf 26 $video_output_full_path_480 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_480.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_480p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '480p' => 1 )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_480p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=854:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } if ($video_res >= 640 || $video_res == 0) { // $shell = shell_exec("$ffmpeg_b -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=640:-2 -crf 26 $video_output_full_path_360 2>&1"); $ffmpegCommand =''.$ffmpeg_b.' -y -i '.$video_file_full_path.' -i '.$watermark_image_full_path.' -filter_complex "overlay=10:10,scale=640:-2" -vcodec libx264 -preset '.$pt->config->convert_speed.' -crf 26 '.$video_output_full_path_360.' 2>&1'; $shell = shell_exec($ffmpegCommand); $upload_s3 = PT_UploadToS3($filepath . "_360p_converted.mp4"); $db->where('id', $insert); $db->update(T_VIDEOS, array( '360p' => 1, )); // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_360p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=640:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video } // demo Video if ($pt->config->demo_video == 'on' && empty($demo_video) && $have_demo == true) { $demo_video = substr($filepath, 0,strpos($filepath, '_video') - 10).sha1(time()) . "_video_240p_demo.mp4"; $shell = shell_exec("$ffmpeg_b $video_time -y -i $video_file_full_path -vcodec libx264 -preset {$pt->config->convert_speed} -filter:v scale=426:-2 -crf 26 ".$full_dir . $demo_video." 2>&1"); $upload_s3 = PT_UploadToS3($demo_video); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'demo' => $demo_video )); } // demo Video if (file_exists($_POST['video-location'])) { unlink($_POST['video-location']); } pt_push_channel_notifiations($video_id); $_SESSION['uploads'] = array(); } else{ $db->insert(T_QUEUE, array('video_id' => $insert, 'video_res' => $video_res, 'processing' => 0)); $db->where('id', $insert); $db->update(T_VIDEOS, array( 'video_location' => $_POST['video-location'] )); } exit(); } } else { $data = array( 'status' => 400, 'message' => $error_icon . $error ); } } Any guidance with this is appreciated Hi Guys, I'm going to try and watermark my uploaded images with a small logo (placed onto the original image) so they are all watermarked, is there any tutorials anyone can recommend to do this? i can't seem to find any online. thanks for any help guys Graham Right now users log in and upload an image to the website. I want every image that is uploaded to be watermarked with a particular logo. Is this possible? Any hints or tips will be appreciated. Thank you. Hi there, Can you guys/girls tell me if this is even possible: - take pictures with eye-fi card in the camera, which uploads the images to a server - on the server, automatically add a watermark, and post them on 3 different facebookpages |