public function resize($width, $height = NULL) { if ($height === NULL) { $height = $width; } return image::resize($this->file->getPath(), $this->file->getPath(), $width, $height); }
$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')); }
/** * 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; }
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); } } }
//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) {
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>';
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&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(); } }
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; }
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'); } }
/** * 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; }
$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');
$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);
$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."; } }
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; }