resize() public method

public resize ( $dst_w, $dst_h )
Example #1
0
 public function resize($width, $height = NULL)
 {
     if ($height === NULL) {
         $height = $width;
     }
     return image::resize($this->file->getPath(), $this->file->getPath(), $width, $height);
 }
Example #2
0
     $mm->uploadfile($_FILES['avatar'], 'temp', $tempname);
     $info = getimagesize(BASEDIR . getpath('uploads') . 'temp/' . $tempname);
     //Kein Bild => löschen und Ende
     if ($info[0] == 0 || $info[1] == 0) {
         $mm->deletefile('temp/' . $tempname);
         message($apx->lang->get('MSG_MAXDIM'), 'javascript:history.back()');
         require 'lib/_end.php';
     }
     //Bild zu groß => verkleinern
     if ($info[0] > $set['user']['avatar_maxdim'] || $info[1] > $set['user']['avatar_maxdim']) {
         if ($ext == 'GIF') {
             $ext = 'jpg';
         }
         $newfile = 'avatar_' . $user->info['userid'] . '_' . time() . '.' . strtolower($ext);
         list($picture, $picturetype) = $img->getimage('temp/' . $tempname);
         $scaled = $img->resize($picture, $set['user']['avatar_maxdim'], $set['user']['avatar_maxdim'], 1, 0);
         if ($scaled != $picture) {
             imagedestroy($picture);
         }
         $img->saveimage($scaled, $picturetype, 'user/' . $newfile);
         imagedestroy($scaled);
     } else {
         $mm->copyfile('temp/' . $tempname, 'user/' . $newfile);
     }
     $mm->deletefile('temp/' . $tempname);
     $db->query("UPDATE " . PRE . "_user SET avatar='" . addslashes($newfile) . "',avatar_title='" . addslashes($_POST['avatar_title']) . "' WHERE userid='" . $user->info['userid'] . "' LIMIT 1");
     if ($user->info['avatar']) {
         $mm->deletefile('user/' . $user->info['avatar']);
     }
     message($apx->lang->get('MSG_OK'), mklink('user.php?action=avatar', 'user,avatar.html'));
 }
Example #3
0
 /**
  * Uploads an author image to the upload/learning_path/images directory
  * @param	array	The image array, coming from the $_FILES superglobal
  * @return	boolean	True on success, false on error
  */
 function upload_image($image_array)
 {
     $image_moved = false;
     if (!empty($image_array['name'])) {
         $upload_ok = process_uploaded_file($image_array);
         $has_attachment = true;
     } else {
         $image_moved = true;
     }
     if ($upload_ok) {
         if ($has_attachment) {
             $courseDir = api_get_course_path() . '/upload/learning_path/images';
             $sys_course_path = api_get_path(SYS_COURSE_PATH);
             $updir = $sys_course_path . $courseDir;
             // Try to add an extension to the file if it hasn't one
             $new_file_name = add_ext_on_mime(stripslashes($image_array['name']), $image_array['type']);
             if (!filter_extension($new_file_name)) {
                 //Display :: display_error_message(get_lang('UplUnableToSaveFileFilteredExtension'));
                 $image_moved = false;
             } else {
                 $file_extension = explode('.', $image_array['name']);
                 $file_extension = strtolower($file_extension[sizeof($file_extension) - 1]);
                 $new_file_name = uniqid('') . '.' . $file_extension;
                 $new_path = $updir . '/' . $new_file_name;
                 //$result= @move_uploaded_file($image_array['tmp_name'], $new_path);
                 // resize the image
                 include_once api_get_path(LIBRARY_PATH) . 'image.lib.php';
                 $temp = new image($image_array['tmp_name']);
                 $picture_infos = @getimagesize($image_array['tmp_name']);
                 // $picture_infos[0]-> width
                 if ($picture_infos[0] > 104) {
                     $thumbwidth = 104;
                 } else {
                     $thumbwidth = $picture_infos[0];
                 }
                 if ($picture_infos[1] > 96) {
                     $new_height = 96;
                 } else {
                     $new_height = $picture_infos[1];
                 }
                 //$new_height = round(($thumbwidth/$picture_infos[0])*$picture_infos[1]);
                 $temp->resize($thumbwidth, $new_height, 0);
                 $type = $picture_infos[2];
                 $result = false;
                 switch ($type) {
                     case 2:
                         $result = $temp->send_image('JPG', $new_path);
                         break;
                     case 3:
                         $result = $temp->send_image('PNG', $new_path);
                         break;
                     case 1:
                         $result = $temp->send_image('GIF', $new_path);
                         break;
                 }
                 $temp->resize($thumbwidth, $new_height, 0);
                 $type = $picture_infos[2];
                 $result = false;
                 switch ($type) {
                     case 2:
                         $result = $temp->send_image('JPG', $new_path);
                         break;
                     case 3:
                         $result = $temp->send_image('PNG', $new_path);
                         break;
                     case 1:
                         $result = $temp->send_image('GIF', $new_path);
                         break;
                 }
                 // Storing the image filename
                 if ($result) {
                     $image_moved = true;
                     $this->set_preview_image($new_file_name);
                     return true;
                 }
             }
         }
     }
     return false;
 }
Example #4
0
 foreach ($_FILES as $key => $a) {
     if (substr($key, 0, 13) == 'image_gallery') {
         if ($cfg_type['gallery_icon']['chose']) {
             $icon = upload(str_replace('image_', 'icon_', $key), _UPLOAD, time() . '-', $image_exts);
             if (!is_array($icon)) {
                 $oImg = new image(_UPLOAD . $icon);
                 $oImg->resize($cfg_type['gallery_icon']['w'], $cfg_type['gallery_icon']['h'], _UPLOAD . $icon);
             } else {
                 $error .= $icon['msg'] . '<br />';
             }
         }
         if ($cfg_type['gallery_img']['chose']) {
             $img = upload($key, _UPLOAD, time() . '-', $image_exts);
             if (!is_array($img)) {
                 $oImg = new image(_UPLOAD . $img);
                 $oImg->resize($cfg_type['gallery_img']['w'], $cfg_type['gallery_img']['h'], _UPLOAD . $img);
                 if ($cfg_type['gallery_thumb']['chose']) {
                     $oImg->resize($cfg_type['gallery_thumb']['w'], $cfg_type['gallery_thumb']['h'], _UPLOAD . 'thumb/' . $img);
                 }
             } else {
                 $error .= $img['msg'] . '<br />';
             }
         }
         if (!$error) {
             $name = $_POST[str_replace('image_', 'name_', $key)];
             if ($img) {
                 $data = array('name' => $name, 'icon' => $icon, 'image' => $img);
                 $oGallery->insert($system->module, $request['id'], $data);
             }
         }
     }
Example #5
0
 //Anhänge aktualisieren
 $attachments = '';
 $data = $db->fetch("\n\t\t\t\tSELECT id, file FROM\n\t\t\t\t" . PRE . "_forum_attachments\n\t\t\t");
 if (count($data)) {
     require BASEDIR . 'lib/class.mediamanager.php';
     require BASEDIR . 'lib/class.image.php';
     $mm = new mediamanager();
     $img = new image();
     foreach ($data as $res) {
         $ext = strtolower($mm->getext($res['file']));
         if (in_array($ext, array('gif', 'jpg', 'jpe', 'jpeg', 'png'))) {
             $fileid = substr($res['file'], 0, -1 * (strlen($ext) - 1));
             $thumbnailPath = $fileid . '_thumb.' . $ext;
             list($picture, $picturetype) = $img->getimage($res['file']);
             //////// THUMBNAIL
             $thumbnail = $img->resize($picture, 120, 90, true);
             $img->saveimage($thumbnail, $picturetype, $thumbnailPath);
             //Cleanup
             imagedestroy($picture);
             imagedestroy($thumbnail);
             unset($picture, $thumbnail);
             //Update SQL
             $db->query("UPDATE " . PRE . "_forum_attachments SET thumbnail='" . addslashes($thumbnailPath) . "' WHERE id='" . $res['id'] . "' LIMIT 1");
         }
     }
 }
 //Thread- und Beitragszahlen berichtigen
 @set_time_limit(600);
 $data = $db->fetch("\n\t\t\t\tSELECT forumid\n\t\t\t\tFROM " . PRE . "_forums\n\t\t\t");
 if (count($data)) {
     foreach ($data as $res) {
Example #6
0
 if (($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/pjpeg") && $_FILES["file"]["size"] < 2000000) {
     $filetmpname = $_FILES["file"]["tmp_name"];
     $filename = $_FILES["file"]["name"];
     $filename = str_replace('_', '', $filename);
     $filename = explode('.', $filename);
     $filename = $filename[1];
     $id1 = md5($id);
     $filename = $id1 . '.' . $filename;
     if ($_FILES["file"]["error"] > 0) {
         echo '<script language=\'javascript\'>alert(\'未知错误!\'); window.location.href="' . $ly . '";</script>';
     } else {
         move_uploaded_file($filetmpname, "upload/touxiang/" . $filename);
         $txurl = "upload/touxiang/" . $filename;
         $img = new image();
         //实例化类文件,
         $simg = $img->resize('./' . $txurl, 'upload', '200', '200');
         copy($simg, $txurl);
         unlink($simg);
         $row = $DB->select('*', 'touxiang', "WHERE user='******'")->fetchALL();
         $row = $row['0'];
         if ($row['user'] == "") {
             $DB->insert('touxiang', array('user' => $user, 'txurl' => $txurl));
             echo '<script language=\'javascript\'>alert(\'头像修改成功!\'); window.location.href="http://' . $ym . '/?act=user&id=' . $id . '";</script>';
         }
         if ($row['user'] == $id) {
             $DB->update('touxiang', array('txurl' => $txurl), "where user='******'");
             echo '<script language=\'javascript\'>alert(\'头像修改成功!\'); window.location.href="http://' . $ym . '/?act=user&id=' . $id . '";</script>';
         }
     }
 } else {
     echo '<script language=\'javascript\'>alert(\'不是图片文件,或者文件太大,请重新上传!\'); window.location.href="' . $ly . '";</script>';
Example #7
0
 function padd()
 {
     global $set, $db, $apx;
     $_REQUEST['id'] = (int) $_REQUEST['id'];
     if (!$_REQUEST['id']) {
         die('missing ID!');
     }
     if (!$this->access_pics($_REQUEST['id'], 'videos.padd')) {
         die('you have no right to access this video!');
     }
     if ($_POST['send'] == 1) {
         require_once BASEDIR . 'lib/class.image.php';
         $img = new image();
         $tblinfo = $db->first("SHOW TABLE STATUS LIKE '" . PRE . "_videos_screens'");
         $nextid = $tblinfo['Auto_increment'];
         //Bilder prüfen
         $error = array();
         for ($i = 1; $i <= $set['videos']['addpics']; $i++) {
             if (!$_FILES['upload' . $i]['tmp_name']) {
                 continue;
             }
             $imginfo = getimagesize($_FILES['upload' . $i]['tmp_name']);
             if (!in_array($imginfo[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG))) {
                 $error[] = $apx->lang->get('MSG_NOIMAGE', array('NAME' => $_FILES['upload' . $i]['name']));
             }
             if ($error) {
                 info(implode('<br />', $error));
                 return;
             }
         }
         //Bilder abarbeiten
         for ($i = 1; $i <= $set['videos']['addpics']; $i++) {
             if (!$_FILES['upload' . $i]['tmp_name']) {
                 continue;
             }
             $ext = strtolower($this->mm->getext($_FILES['upload' . $i]['name']));
             if ($ext == 'gif') {
                 $ext = 'jpg';
             }
             $newname = 'pic' . '-' . $_POST['id'] . '-' . $nextid . '.' . $ext;
             $newfile = 'videos/screens/' . $newname;
             $thumbname = 'pic' . '-' . $_POST['id'] . '-' . $nextid . '-thumb.' . $ext;
             $thumbfile = 'videos/screens/' . $thumbname;
             //Erfolgreichen Upload prüfen
             if (!$this->mm->uploadfile($_FILES['upload' . $i], 'videos/screens', $newname)) {
                 continue;
             }
             //Bild einlesen
             list($picture, $picturetype) = $img->getimage($newfile);
             //////// THUMBNAIL
             $thumbnail = $img->resize($picture, $set['videos']['thumbwidth'], $set['videos']['thumbheight'], $set['videos']['quality_resize'], $set['videos']['thumb_fit']);
             $img->saveimage($thumbnail, $picturetype, $thumbfile);
             //////// BILD
             //Bild skalieren
             if ($picture !== false && !$_POST['noresize' . $i] && $set['videos']['picwidth'] && $set['videos']['picheight']) {
                 $scaled = $img->resize($picture, $set['videos']['picwidth'], $set['videos']['picheight'], $set['videos']['quality_resize'], 0);
                 if ($scaled != $picture) {
                     imagedestroy($picture);
                 }
                 $picture = $scaled;
             }
             //Wasserzeichen einfügen
             if ($picture !== false && $set['videos']['watermark'] && $_POST['watermark' . $i]) {
                 $watermarked = $img->watermark($picture, $set['videos']['watermark'], $set['videos']['watermark_position'], $set['videos']['watermark_transp']);
                 if ($watermarked != $picture) {
                     imagedestroy($picture);
                 }
                 $picture = $watermarked;
             }
             //Bild erstellen
             $img->saveimage($picture, $picturetype, $newfile);
             //Cleanup
             imagedestroy($picture);
             imagedestroy($thumbnail);
             unset($picture, $thumbnail);
             //In DB eintragen
             $db->query("INSERT INTO " . PRE . "_videos_screens (videoid, thumbnail, picture) VALUES ('" . $_REQUEST['id'] . "', '" . addslashes($thumbfile) . "', '" . addslashes($newfile) . "')");
             logit('VIDEOS_PADD', 'ID #' . $nextid);
             ++$nextid;
         }
         printJSRedirect('action.php?action=videos.pshow&id=' . $_REQUEST['id']);
         return;
     } else {
         for ($i = 1; $i <= $set['videos']['addpics']; $i++) {
             $_POST['watermark' . $i] = 1;
             $_POST['allowcoms' . $i] = 1;
             $_POST['allowrating' . $i] = 1;
         }
     }
     //Felder ausgeben
     for ($i = 1; $i <= $set['videos']['addpics']; $i++) {
         $upload[$i]['CAPTION'] = compatible_hsc($_POST['caption' . $i]);
         $upload[$i]['WATERMARK'] = 1;
         $upload[$i]['NORESIZE'] = 0;
         $upload[$i]['ALLOWCOMS'] = 1;
         $upload[$i]['ALLOWRATING'] = 1;
     }
     $apx->tmpl->assign('ID', $_REQUEST['id']);
     $apx->tmpl->assign('UPLOAD', $upload);
     $apx->tmpl->assign('SET_WATERMARK', iif($set['videos']['watermark'], 1, 0));
     $apx->tmpl->assign('SET_NORESIZE', iif($set['videos']['picwidth'] && $set['videos']['picheight'], 1, 0));
     $apx->tmpl->parse('padd');
 }
/**
 * Add (or edit) a template. This function displays the form and also takes care of uploading the image and storing the information in the database
 *
 * @author Patrick Cool <*****@*****.**>, Ghent University, Belgium
 * @version August 2008
 * @since Dokeos 1.8.6
 */
function add_edit_template()
{
    // initiate the object
    $form = new FormValidator('template', 'post', 'settings.php?category=Templates&action=' . $_GET['action'] . '&id=' . $_GET['id']);
    // settting the form elements: the header
    if ($_GET['action'] == 'add') {
        $title = get_lang('AddTemplate');
    } else {
        $title = get_lang('EditTemplate');
    }
    $form->addElement('header', '', $title);
    // settting the form elements: the title of the template
    $form->add_textfield('title', get_lang('Title'), false);
    // settting the form elements: the content of the template (wysiwyg editor)
    $form->addElement('html_editor', 'template_text', get_lang('Text'));
    // settting the form elements: the form to upload an image to be used with the template
    $form->addElement('file', 'template_image', get_lang('Image'), '');
    // settting the form elements: a little bit information about the template image
    $form->addElement('static', 'file_comment', '', get_lang('TemplateImageComment100x70'));
    // getting all the information of the template when editing a template
    if ($_GET['action'] == 'edit') {
        // Database table definition
        $table_system_template = Database::get_main_table('system_template');
        $sql = "SELECT * FROM {$table_system_template} WHERE id = '" . Database::escape_string($_GET['id']) . "'";
        $result = api_sql_query($sql, __FILE__, __LINE__);
        $row = Database::fetch_array($result);
        $defaults['template_id'] = $_GET['id'];
        $defaults['template_text'] = $row['content'];
        $defaults['title'] = $row['title'];
        // adding an extra field: a hidden field with the id of the template we are editing
        $form->addElement('hidden', 'template_id');
        // adding an extrra field: a preview of the image that is currently used
        if (!empty($row['image'])) {
            $form->addElement('static', 'template_image_preview', '', '<img src="' . api_get_path(WEB_PATH) . 'home/default_platform_document/' . $row['image'] . '" alt="' . get_lang('TemplatePreview') . '"/>');
        } else {
            $form->addElement('static', 'template_image_preview', '', '<img src="' . api_get_path(WEB_PATH) . 'home/default_platform_document/noimage.gif" alt="' . get_lang('NoTemplatePreview') . '"/>');
        }
        // setting the information of the template that we are editing
        $form->setDefaults($defaults);
    }
    // settting the form elements: the submit button
    $form->addElement('style_submit_button', 'submit', get_lang('Ok'), 'class="save"');
    // setting the rules: the required fields
    $form->addRule('title', '<div class="required">' . get_lang('ThisFieldIsRequired'), 'required');
    $form->addRule('template_text', '<div class="required">' . get_lang('ThisFieldIsRequired'), 'required');
    // if the form validates (complies to all rules) we save the information, else we display the form again (with error message if needed)
    if ($form->validate()) {
        // exporting the values
        $values = $form->exportValues();
        // upload the file
        if (!empty($_FILES['template_image']['name'])) {
            include_once api_get_path(LIBRARY_PATH) . 'fileUpload.lib.php';
            $upload_ok = process_uploaded_file($_FILES['template_image']);
            if ($upload_ok) {
                // Try to add an extension to the file if it hasn't one
                $new_file_name = add_ext_on_mime(stripslashes($_FILES['template_image']['name']), $_FILES['template_image']['type']);
                // upload dir
                $upload_dir = api_get_path(SYS_PATH) . 'home/default_platform_document/';
                // create dir if not exists
                if (!is_dir($upload_dir)) {
                    $perm = api_get_setting('permissions_for_new_directories');
                    $perm = octdec(!empty($perm) ? $perm : '0770');
                    $res = @mkdir($upload_dir, $perm);
                }
                // resize image to max default and upload
                require_once api_get_path(LIBRARY_PATH) . 'image.lib.php';
                $temp = new image($_FILES['template_image']['tmp_name']);
                $picture_infos = @getimagesize($_FILES['template_image']['tmp_name']);
                $max_width_for_picture = 100;
                if ($picture_infos[0] > $max_width_for_picture) {
                    $thumbwidth = $max_width_for_picture;
                    if (empty($thumbwidth) or $thumbwidth == 0) {
                        $thumbwidth = $max_width_for_picture;
                    }
                    $new_height = round($thumbwidth / $picture_infos[0] * $picture_infos[1]);
                    $temp->resize($thumbwidth, $new_height, 0);
                }
                $type = $picture_infos[2];
                switch (!empty($type)) {
                    case 2:
                        $temp->send_image('JPG', $upload_dir . $new_file_name);
                        break;
                    case 3:
                        $temp->send_image('PNG', $upload_dir . $new_file_name);
                        break;
                    case 1:
                        $temp->send_image('GIF', $upload_dir . $new_file_name);
                        break;
                }
            }
        }
        // store the information in the database (as insert or as update)
        $table_system_template = Database::get_main_table('system_template');
        if ($_GET['action'] == 'add') {
            $sql = "INSERT INTO {$table_system_template} (title, content, image) VALUES ('" . Database::escape_string($values['title']) . "','" . Database::escape_string($values['template_text']) . "','" . Database::escape_string($new_file_name) . "')";
            $result = api_sql_query($sql, __FILE__, __LINE__);
            // display a feedback message
            Display::display_confirmation_message('TemplateAdded');
            echo '<a href="settings.php?category=Templates&amp;action=add">' . Display::return_icon('add_template.gif', get_lang('AddTemplate')) . get_lang('AddTemplate') . '</a>';
        } else {
            $sql = "UPDATE {$table_system_template} set title = '" . Database::escape_string($values['title']) . "',\n\t\t\t\t\t\t\t\t\t\t\t   \t\t  content = '" . Database::escape_string($values['template_text']) . "'";
            if (!empty($new_file_name)) {
                $sql .= ", image = '" . Database::escape_string($new_file_name) . "'";
            }
            $sql .= " WHERE id='" . Database::escape_string($_GET['id']) . "'";
            $result = api_sql_query($sql, __FILE__, __LINE__);
            // display a feedback message
            Display::display_confirmation_message('TemplateEdited');
        }
        display_templates();
    } else {
        // display the form
        $form->display();
    }
}
Example #9
0
 function inline_upload()
 {
     global $set, $db, $apx;
     $file = $_FILES['image'];
     //Prüfen ob eine Datei hochgeladen wurde, falls ja verschieben
     if (!$file['tmp_name']) {
         return;
     }
     if (!is_uploaded_file($file['tmp_name'])) {
         return;
     }
     if (!checkToken()) {
         printInvalidToken();
         exit;
     }
     $ext = strtolower($this->mm->getext($file['name']));
     if ($ext == 'gif') {
         $ext = 'jpg';
     }
     $tempfile = md5(microtime()) . '.' . $ext;
     $this->mm->uploadfile($file, 'inline', $tempfile);
     //Nächste ID auslesen
     $tblinfo = $db->first("SHOW TABLE STATUS LIKE '" . PRE . "_inlinescreens'");
     $now = time();
     //Einheitliche Upload-Zeit, auch wenns nicht stimmt
     $newname = 'pic' . '-' . $tblinfo['Auto_increment'] . '.' . $ext;
     $newfile = 'inline/' . $newname;
     $popname = 'pic' . '-' . $tblinfo['Auto_increment'] . '-popup.' . $ext;
     $popfile = 'inline/' . $popname;
     //Bild einlesen
     require_once BASEDIR . 'lib/class.image.php';
     $img = new image();
     ////// NORMALES BILD
     list($picture, $picturetype) = $img->getimage('inline/' . $tempfile);
     //Skalieren
     if ($picture !== false && ($_POST['size_x'] || $_POST['size_y'])) {
         $scaled = $img->resize($picture, $_POST['size_x'], $_POST['size_y'], $set['mediamanager']['quality_resize'], 0);
         if ($scaled != $picture) {
             imagedestroy($picture);
         }
         $picture = $scaled;
     }
     //Wasserzeichen einfügen
     if ($picture !== false && $set['mediamanager']['watermark'] && $_POST['watermark']) {
         $watermarked = $img->watermark($picture, $set['mediamanager']['watermark'], $set['mediamanager']['watermark_position'], $set['mediamanager']['watermark_transp']);
         if ($watermarked != $picture) {
             imagedestroy($picture);
         }
         $picture = $watermarked;
     }
     //Bild erstellen
     $img->saveimage($picture, $picturetype, $newfile);
     imagedestroy($picture);
     ////// POPUP-BILD
     if ($_POST['popup']) {
         list($picture, $picturetype) = $img->getimage('inline/' . $tempfile);
         //Skalieren
         if ($picture !== false && ($_POST['popup_size_x'] || $_POST['popup_size_y'])) {
             $scaled = $img->resize($picture, $_POST['popup_size_x'], $_POST['popup_size_y'], $set['mediamanager']['quality_resize'], 0);
             if ($scaled != $picture) {
                 imagedestroy($picture);
             }
             $picture = $scaled;
         }
         //Wasserzeichen einfügen
         if ($picture !== false && $set['mediamanager']['watermark'] && $_POST['popup_watermark']) {
             $watermarked = $img->watermark($picture, $set['mediamanager']['watermark'], $set['mediamanager']['watermark_position'], $set['mediamanager']['watermark_transp']);
             if ($watermarked != $picture) {
                 imagedestroy($picture);
             }
             $picture = $watermarked;
         }
         //Bild erstellen
         $img->saveimage($picture, $picturetype, $popfile);
         imagedestroy($picture);
     }
     //Cachefile löschen
     $this->mm->deletefile('inline/' . $tempfile);
     $_POST['addtime'] = time();
     $_POST['picture'] = $newfile;
     if ($_POST['popup']) {
         $_POST['popup'] = $popfile;
     } else {
         $_POST['popup'] = '';
     }
     $db->dinsert(PRE . '_inlinescreens', 'module,mid,hash,picture,popup,align,text,addtime');
     logit('MEDIAMANAGER_INLINE', 'ID #' . $db->insert_id());
     printJSRedirect('action.php?action=mediamanager.inline&module=' . $_REQUEST['module'] . '&mid=' . $_REQUEST['mid'] . '&hash=' . $_REQUEST['hash'] . '&fields=' . $_REQUEST['fields']);
     exit;
 }
Example #10
0
 function pictures()
 {
     global $set, $db, $apx;
     //Notwendig weil 1.7.0 beim Kopieren ein Bild mit ID 0 erzeugt hatte :/
     if (isset($_REQUEST['delpic'])) {
         $_REQUEST['delpic'] = (int) $_REQUEST['delpic'];
     } else {
         $_REQUEST['delpic'] = null;
     }
     //Bilder auslesen
     list($pictures, $nextid) = $db->first("SELECT pictures,pictures_nextid FROM " . PRE . "_articles WHERE id='" . $_REQUEST['id'] . "'");
     $pictures = unserialize($pictures);
     if (!is_array($pictures)) {
         $pictures = array();
     }
     //Bild löschen
     if (isset($_REQUEST['delpic']) && isset($pictures[$_REQUEST['delpic']])) {
         if ($_POST['delpic']) {
             if (!checkToken()) {
                 printInvalidToken();
             } else {
                 $picinfo = $pictures[$_REQUEST['delpic']];
                 require BASEDIR . 'lib/class.mediamanager.php';
                 $mm = new mediamanager();
                 if ($picinfo['thumbnail'] && file_exists(BASEDIR . getpath('uploads') . $picinfo['thumbnail'])) {
                     $mm->deletefile($picinfo['thumbnail']);
                 }
                 if ($picinfo['picture'] && file_exists(BASEDIR . getpath('uploads') . $picinfo['picture'])) {
                     $mm->deletefile($picinfo['picture']);
                 }
                 unset($pictures[$_REQUEST['delpic']]);
                 $db->query("UPDATE " . PRE . "_articles SET pictures='" . addslashes(serialize($pictures)) . "' WHERE id='" . $_REQUEST['id'] . "' LIMIT 1");
                 printJSRedirect('action.php?action=' . $_REQUEST['action'] . '&id=' . $_REQUEST['id'] . '&pubnow=' . $_REQUEST['pubnow'] . '&pageid=pics');
             }
         } else {
             tmessageOverlay('picdel', array('ID' => $_REQUEST['id'], 'DELPIC' => $_REQUEST['delpic']));
         }
     } elseif ($_POST['send']) {
         require BASEDIR . 'lib/class.mediamanager.php';
         $mm = new mediamanager();
         require_once BASEDIR . 'lib/class.image.php';
         $img = new image();
         //Bilder abarbeiten
         for ($i = 1; $i <= 5; $i++) {
             if (!$_FILES['upload' . $i]['tmp_name']) {
                 continue;
             }
             $ext = strtolower($mm->getext($_FILES['upload' . $i]['name']));
             if ($ext == 'gif') {
                 $ext = 'jpg';
             }
             $newname = 'pic' . '-' . $_POST['id'] . '-' . $nextid . '.' . $ext;
             $newfile = 'articles/gallery/' . $newname;
             $thumbname = 'pic' . '-' . $_POST['id'] . '-' . $nextid . '-thumb.' . $ext;
             $thumbfile = 'articles/gallery/' . $thumbname;
             //Erfolgreichen Upload prüfen
             if (!$mm->uploadfile($_FILES['upload' . $i], 'articles/gallery', $newname)) {
                 continue;
             }
             //Bild einlesen
             list($picture, $picturetype) = $img->getimage($newfile);
             //////// THUMBNAIL
             $thumbnail = $img->resize($picture, $set['articles']['thumbwidth'], $set['articles']['thumbheight'], $set['articles']['artpic_quality']);
             $img->saveimage($thumbnail, $picturetype, $thumbfile);
             //////// BILD
             //Bild skalieren
             if ($picture !== false && !$_POST['noresize' . $i] && $set['articles']['picwidth'] && $set['articles']['picheight']) {
                 $scaled = $img->resize($picture, $set['articles']['picwidth'], $set['articles']['picheight'], $set['articles']['artpic_quality'], 0);
                 if ($scaled != $picture) {
                     imagedestroy($picture);
                 }
                 $picture = $scaled;
             }
             //Wasserzeichen einfügen
             if ($picture !== false && $set['articles']['watermark'] && $_POST['watermark' . $i]) {
                 $watermarked = $img->watermark($picture, $set['articles']['watermark'], $set['articles']['watermark_position'], $set['articles']['watermark_transp']);
                 if ($watermarked != $picture) {
                     imagedestroy($picture);
                 }
                 $picture = $watermarked;
             }
             //Bild erstellen
             $img->saveimage($picture, $picturetype, $newfile);
             //Cleanup
             imagedestroy($picture);
             imagedestroy($thumbnail);
             unset($picture, $thumbnail);
             $pictures[$nextid] = array('picture' => $newfile, 'thumbnail' => $thumbfile);
             ++$nextid;
         }
         //Bilder eintragen
         $db->query("UPDATE " . PRE . "_articles SET pictures='" . addslashes(serialize($pictures)) . "',pictures_nextid='" . intval($nextid) . "' WHERE id='" . $_REQUEST['id'] . "' LIMIT 1");
         //Artikel beenden
         if ($_POST['submit_finish']) {
             $this->finish_article();
             return;
         } else {
             printJSRedirect('action.php?action=' . $_REQUEST['action'] . '&id=' . $_REQUEST['id'] . '&pubnow=' . $_REQUEST['pubnow'] . '&pageid=pics');
         }
     } else {
         echo '<h2>' . $apx->lang->get(iif($this->type == 'normal', 'ARTICLE', strtoupper($this->type))) . ': ' . $this->title . '</h2>';
         //Bilderserie auflisten
         foreach ($pictures as $id => $res) {
             ++$i;
             $picdata[$i]['ID'] = $id;
             $picdata[$i]['IMAGE'] = HTTPDIR . getpath('uploads') . $res['thumbnail'];
             $picdata[$i]['LINK'] = HTTPDIR . getpath('uploads') . $res['picture'];
             $picdata[$i]['OPTIONS'] .= optionHTMLOverlay('del.gif', $_REQUEST['action'], 'id=' . $_REQUEST['id'] . '&pageid=pics&delpic=' . $id . '&pubnow=' . $_REQUEST['pubnow'], $apx->lang->get('CORE_DEL'));
         }
         $apx->tmpl->assign('SET_WATERMARK', iif($set['articles']['watermark'], 1, 0));
         $apx->tmpl->assign('SET_NORESIZE', iif($set['articles']['picwidth'] && $set['articles']['picheight'], 1, 0));
         $apx->tmpl->assign('PIC', $picdata);
         $apx->tmpl->assign('PUBNOW', (int) $_REQUEST['pubnow']);
         $apx->tmpl->assign('ID', $_REQUEST['id']);
         $apx->tmpl->assign('ACTION', iif($_REQUEST['action'] == 'articles.add', 'add', 'edit'));
         $apx->tmpl->parse('pictures');
     }
 }
Example #11
0
 /**
  * Unit test
  * @param string $file 
  */
 public static function run_test()
 {
     $img = new image();
     $img->load('/tmp/test.jpg');
     $img->resize(700);
     $img->watermark('/tmp/wm.png');
     $img->resize(200);
     $img->save('/tmp/success.png');
 }
 function makeScreenshots($flvFile, $duration, $id)
 {
     $files = array();
     $screenid = 1;
     require_once BASEDIR . 'lib/class.image.php';
     $img = new image();
     //Screenshots machen
     for ($i = 1; $i <= 10; $i += 2) {
         unset($output);
         $newname = 'pic-' . $id . '-' . $screenid . '.jpg';
         $newfile = 'videos/screens/' . $newname;
         $thumbname = 'pic-' . $id . '-' . $screenid . '-thumb.jpg';
         $thumbfile = 'videos/screens/' . $thumbname;
         //Screenshot erzeugen
         $screenfrom = floor($duration / 11 * $i);
         $cmd = $this->ffmpeg . ' -itsoffset -' . $screenfrom . ' -i ' . $flvFile . ' -vframes 1 -f mjpeg -sameq ' . BASEDIR . getpath('uploads') . $newfile . ' 2>&1';
         exec($cmd, $output, $returnval);
         echo $cmd . "\n" . implode("\n", $output) . "\nreturns " . $returnval . "\n";
         echo "\n--------------------------------------------\n\n";
         $this->forceLogOut();
         //Bild einlesen
         list($picture, $picturetype) = $img->getimage($newfile);
         //////// THUMBNAIL
         $thumbnail = $img->resize($picture, $this->thumbwidth, $this->thumbheight, $this->quality_resize, false);
         $img->saveimage($thumbnail, $picturetype, $thumbfile);
         //////// BILD
         //Bild skalieren
         if ($picture !== false && $this->picwidth && $this->picheight) {
             $scaled = $img->resize($picture, $this->picwidth, $this->picheight, $this->quality_resize, 0);
             if ($scaled != $picture) {
                 imagedestroy($picture);
             }
             $picture = $scaled;
         }
         //Wasserzeichen einfügen
         if ($picture !== false && $this->watermark) {
             $watermarked = $img->watermark($picture, $this->watermark, $this->watermark_position, $this->watermark_transp);
             if ($watermarked != $picture) {
                 imagedestroy($picture);
             }
             $picture = $watermarked;
         }
         //Bild erstellen
         $img->saveimage($picture, $picturetype, $newfile);
         //Cleanup
         imagedestroy($picture);
         imagedestroy($thumbnail);
         unset($picture, $thumbnail);
         $files[] = array('thumbnail' => $thumbfile, 'picture' => $newfile);
         ++$screenid;
     }
     return $files;
 }
Example #13
0
$dir = dirname(__FILE__);
$fixtures = $dir . '/../fixtures/image';
require $dir . '/../../lib/php/model/image.class.php';
$baseImage = $fixtures . '/FordMustang.jpg';
$waterMark = $fixtures . '/black-opacity.png';
$image = new image($baseImage);
$images = array();
logSection($image->isActive(), 'is valid image', 'info');
if (!$image->isActive()) {
    logSection('exit', 'image is invalid, operation can not be finished', 'error');
}
$width = $image->getData('width');
$height = $image->getData('height');
logSection($width . 'x' . $height, 'test getData method', 'info');
logSection('jpeg' == $image->getType(), 'test getType method', 'info');
$image->resize(500, 500, 'height');
$image->save($fixtures . '/FordMustang-500h.jpg');
$images[] = $fixtures . '/FordMustang-500h.jpg';
logSection(file_exists($fixtures . '/FordMustang-500h.jpg'), '->resize(500, 500, height)->save(FordMustang-500h.jpg)');
logSection($image->getData('height') == 500, 'height == 500');
$image->resize(500, 500, 'width');
$image->save($fixtures . '/FordMustang-500w.jpg');
$images[] = $fixtures . '/FordMustang-500w.jpg';
logSection(file_exists($fixtures . '/FordMustang-500w.jpg'), '->resize(500, 500, width)->save(FordMustang-500w.jpg)');
logSection($image->getData('width') == 500, 'width == 500');
$image->resize(500, 500, 'auto');
$image->save($fixtures . '/FordMustang-500a.jpg');
$images[] = $fixtures . '/FordMustang-500a.jpg';
logSection(file_exists($fixtures . '/FordMustang-500w.jpg'), '->resize(500, 500, auto)->save(FordMustang-500a.jpg)');
logSection($image->getData('width') == 500, 'width == 500');
$image->resize(2, 0, 'zoom');
Example #14
0
 $img = new image();
 $tblinfo = $db->first("SHOW TABLE STATUS LIKE '" . PRE . "_user_pictures'");
 $now = time();
 //Einheitliche Upload-Zeit, auch wenns nicht stimmt
 $i = 0;
 foreach ($files as $file) {
     ++$i;
     $random = random_string(5);
     $newname = 'pic' . '-' . ($tblinfo['Auto_increment'] + $i - 1) . '-' . $random . '.' . $file['ext'];
     $newfile = 'user/gallery-' . $galid . '/' . $newname;
     $thumbname = 'pic' . '-' . ($tblinfo['Auto_increment'] + $i - 1) . '-thumb-' . $random . '.' . $file['ext'];
     $thumbfile = 'user/gallery-' . $galid . '/' . $thumbname;
     //Bild einlesen
     list($picture, $picturetype) = $img->getimage($file['source']);
     //////// THUMBNAIL
     $thumbnail = $img->resize($picture, $set['user']['gallery_thumbwidth'], $set['user']['gallery_thumbheight'], $set['user']['gallery_quality_resize'], $set['user']['gallery_thumb_fit']);
     $img->saveimage($thumbnail, $picturetype, $thumbfile);
     //////// BILD
     //Skalieren
     if ($picture !== false && !$file['noresize'] && $set['user']['gallery_picwidth'] && $set['user']['gallery_picheight']) {
         $scaled = $img->resize($picture, $set['user']['gallery_picwidth'], $set['user']['gallery_picheight'], $set['user']['gallery_quality_resize'], 0);
         if ($scaled != $picture) {
             imagedestroy($picture);
         }
         $picture = $scaled;
     }
     //Bild erstellen
     $img->saveimage($picture, $picturetype, $newfile);
     //Cleanup
     imagedestroy($picture);
     imagedestroy($thumbnail);
Example #15
0
                 $img = new image();
                 $img->createfromfile($target);
                 if ($img->width() > $img->height()) {
                     $left = ($img->width() - $img->height()) / 2;
                     $img->cut($left, 0, $img->height(), $img->height());
                 } else {
                     $top = ($img->height() - $img->width()) / 2;
                     $img->cut(0, $top, $img->width(), $img->width());
                 }
                 $img->resize(64, 64, true);
                 $thumbtarget = getThumbUrl($target);
                 $img->save($thumbtarget, 90);
                 $img2 = new image();
                 $img2->createfromfile($target);
                 if ($img2->width() > 640 || $img2->height() > 640) {
                     $img2->resize(540, 540, true);
                 }
                 $midsizetarget = getMidsizeUrl($target);
                 $img2->save($midsizetarget, 90);
                 $image['url'] = $target;
                 $image['dateCreated'] = date("Y-m-d H:i:s");
                 $image['id'] = $waka['maxImageId'];
                 $image['name'] = basename($_FILES['uploaded']['name']);
                 $item['images'][count($item['images'])] = $image;
                 $item['dateImagesTouched'] = date("Y-m-d H:i:s");
             }
         }
     } else {
         echo "Sorry, there was a problem uploading your file.";
     }
 }
Example #16
0
 function process_files($files)
 {
     global $set, $db, $apx;
     $tblinfo = $db->first("SHOW TABLE STATUS LIKE '" . PRE . "_gallery_pics'");
     $now = time();
     //Einheitliche Upload-Zeit, auch wenns nicht stimmt
     require_once BASEDIR . 'lib/class.image.php';
     $img = new image();
     $mm = new mediamanager();
     foreach ($files as $file) {
         ++$i;
         $newname = 'pic' . '-' . ($tblinfo['Auto_increment'] + $i - 1) . '.' . $file['ext'];
         $newfile = 'gallery/' . $_REQUEST['id'] . '/' . $newname;
         $thumbname = 'pic' . '-' . ($tblinfo['Auto_increment'] + $i - 1) . '-thumb.' . $file['ext'];
         $thumbfile = 'gallery/' . $_REQUEST['id'] . '/' . $thumbname;
         //Bild einlesen
         list($picture, $picturetype) = $img->getimage($file['source']);
         //////// THUMBNAIL
         $thumbnail = $img->resize($picture, $set['gallery']['thumbwidth'], $set['gallery']['thumbheight'], $set['gallery']['quality_resize'], $set['gallery']['thumb_fit']);
         $img->saveimage($thumbnail, $picturetype, $thumbfile);
         //////// BILD
         //Skalieren
         if ($picture !== false && !$file['noresize'] && $set['gallery']['picwidth'] && $set['gallery']['picheight']) {
             $scaled = $img->resize($picture, $set['gallery']['picwidth'], $set['gallery']['picheight'], $set['gallery']['quality_resize'], 0);
             if ($scaled != $picture) {
                 imagedestroy($picture);
             }
             $picture = $scaled;
         }
         //Wasserzeichen einfügen
         if ($picture !== false && $set['gallery']['watermark'] && $file['watermark']) {
             $watermarked = $img->watermark($picture, $set['gallery']['watermark'], $set['gallery']['watermark_position'], $set['gallery']['watermark_transp']);
             if ($watermarked != $picture) {
                 imagedestroy($picture);
             }
             $picture = $watermarked;
         }
         //Bild erstellen
         $img->saveimage($picture, $picturetype, $newfile);
         //Cleanup
         imagedestroy($picture);
         imagedestroy($thumbnail);
         unset($picture, $thumbnail);
         if ($_POST['what'] != 'ftp' || $_POST['delpics']) {
             $mm->deletefile($file['source']);
         }
         $db->query("INSERT INTO " . PRE . "_gallery_pics VALUES (0,'" . $_REQUEST['id'] . "','" . $thumbfile . "','" . $newfile . "','" . addslashes($file['caption']) . "',0,'" . $now . "','" . (int) $file['allowcoms'] . "','" . (int) $file['allowrating'] . "','1','0')");
         logit('GALLERY_PADD', 'ID #' . $db->insert_id());
     }
     $this->files = $i;
 }