本文整理汇总了PHP中graphics::_replace_image_with_placeholder方法的典型用法代码示例。如果您正苦于以下问题:PHP graphics::_replace_image_with_placeholder方法的具体用法?PHP graphics::_replace_image_with_placeholder怎么用?PHP graphics::_replace_image_with_placeholder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类graphics
的用法示例。
在下文中一共展示了graphics::_replace_image_with_placeholder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generate
/**
* Rebuild the thumb and resize for the given item.
* @param Item_Model $item
*/
static function generate($item)
{
if ($item->thumb_dirty) {
$ops["thumb"] = $item->thumb_path();
}
if ($item->resize_dirty && $item->is_photo()) {
$ops["resize"] = $item->resize_path();
}
try {
foreach ($ops as $target => $output_file) {
$working_file = $item->file_path();
// Delete anything that might already be there
@unlink($output_file);
switch ($item->type) {
case "movie":
// Run movie_extract_frame events, which can either:
// - generate an output file, bypassing the ffmpeg-based movie::extract_frame
// - add to the options sent to movie::extract_frame (e.g. change frame extract time,
// add de-interlacing arguments to ffmpeg... see movie helper for more info)
// Note that the args are similar to those of the events in gallery_graphics
$movie_options_wrapper = new stdClass();
$movie_options_wrapper->movie_options = array();
module::event("movie_extract_frame", $working_file, $output_file, $movie_options_wrapper, $item);
// If no output_file generated by events, run movie::extract_frame with movie_options
clearstatcache();
if (@filesize($output_file) == 0) {
try {
movie::extract_frame($working_file, $output_file, $movie_options_wrapper->movie_options);
// If we're here, we know ffmpeg is installed and the movie is valid. Because the
// user may not always have had ffmpeg installed, the movie's width, height, and
// mime type may need updating. Let's use this opportunity to make sure they're
// correct. It's not optimal to do it at this low level, but it's not trivial to find
// these cases quickly in an upgrade script.
list($width, $height, $mime_type) = movie::get_file_metadata($working_file);
// Only set them if they need updating to avoid marking them as "changed"
if ($item->width != $width || $item->height != $height || $item->mime_type != $mime_type) {
$item->width = $width;
$item->height = $height;
$item->mime_type = $mime_type;
}
} catch (Exception $e) {
// Didn't work, likely because of MISSING_FFMPEG - use placeholder
graphics::_replace_image_with_placeholder($item, $target);
break;
}
}
$working_file = $output_file;
case "photo":
// Run the graphics rules (for both movies and photos)
foreach (self::_get_rules($target) as $rule) {
$args = array($working_file, $output_file, unserialize($rule->args), $item);
call_user_func_array($rule->operation, $args);
$working_file = $output_file;
}
break;
case "album":
if (!($cover = $item->album_cover())) {
// This album has no cover; copy its placeholder image. Because of an old bug, it's
// possible that there's an album cover item id that points to an invalid item. In that
// case, just null out the album cover item id. It's not optimal to do that at this low
// level, but it's not trivial to find these cases quickly in an upgrade script and if we
// don't do this, the album may be permanently marked as "needs rebuilding"
//
// ref: http://sourceforge.net/apps/trac/gallery/ticket/1172
// http://galleryproject.org/node/96926
if ($item->album_cover_item_id) {
$item->album_cover_item_id = null;
$item->save();
}
graphics::_replace_image_with_placeholder($item, $target);
break;
}
if ($cover->thumb_dirty) {
graphics::generate($cover);
}
if (!$cover->thumb_dirty) {
// Make the album cover from the cover item's thumb. Run gallery_graphics::resize with
// null options and it will figure out if this is a direct copy or conversion to jpg.
$working_file = $cover->thumb_path();
gallery_graphics::resize($working_file, $output_file, null, $item);
}
break;
}
}
if (!empty($ops["thumb"])) {
if (file_exists($item->thumb_path())) {
$item->thumb_dirty = 0;
} else {
Kohana_Log::add("error", "Failed to rebuild thumb image: {$item->title}");
graphics::_replace_image_with_placeholder($item, "thumb");
}
}
if (!empty($ops["resize"])) {
if (file_exists($item->resize_path())) {
$item->resize_dirty = 0;
} else {
//.........这里部分代码省略.........