Image 完全删除WordPress自动裁剪图像
我正在做一个自定义的主题,并已基本完成该网站。我正在使用自定义字段的类型,这些字段用于上载图像,这些图像稍后将放入旋转木马。我发现,当我上传一张1069x1060图像时,它没有被裁剪或触摸,图像的全部内容都是可见的。现在,当我上传一张850x700的图片时,图像被裁剪,整个区域都不可见 这可以通过查看旋转图片看到,您会注意到其中一张被裁剪,无法看到整个内容 此外,我还取消选中了“设置->媒体”下的“将缩略图裁剪到精确尺寸(通常缩略图是成比例的)”选项,但这没有帮助。我没有添加任何自定义功能图像大小 奇怪的是,当我选择它在微小的预览屏幕上显示的图像时,图像没有被裁剪。但是,当实际访问站点时,图像会被裁剪。我还选择了使用“全尺寸” 有人能帮忙吗 我使用类型自定义字段插件在主题中实际显示这些字段,如:Image 完全删除WordPress自动裁剪图像,image,wordpress,crop,Image,Wordpress,Crop,我正在做一个自定义的主题,并已基本完成该网站。我正在使用自定义字段的类型,这些字段用于上载图像,这些图像稍后将放入旋转木马。我发现,当我上传一张1069x1060图像时,它没有被裁剪或触摸,图像的全部内容都是可见的。现在,当我上传一张850x700的图片时,图像被裁剪,整个区域都不可见 这可以通过查看旋转图片看到,您会注意到其中一张被裁剪,无法看到整个内容 此外,我还取消选中了“设置->媒体”下的“将缩略图裁剪到精确尺寸(通常缩略图是成比例的)”选项,但这没有帮助。我没有添加任何自定义功能图像大
<?php if (!((get_post_meta($post->ID, 'wpcf-portfoliopicture1', TRUE))=='')): ?>
<div class="row">
<div class="span8">
<div class="span6 offset1" style="padding-left:20px;">
<?php
$param['height']=350;
$param['width']=325;
$param['alt']=types_render_field("portfoliotitle1",$param2);
$param['title']=types_render_field("portfoliotitle1",$param2);
?>
<ul class="round">
<li><?php echo(types_render_field("portfoliopicture1", $param)); ?></li>
<?php
$param['alt']=types_render_field("portfoliotitle2",$param2);
$param['title']=types_render_field("portfoliotitle2",$param2);
?>
<li><?php echo(types_render_field("portfoliopicture2", $param)); ?></li>
<?php
$param['alt']=types_render_field("portfoliotitle3",$param2);
$param['title']=types_render_field("portfoliotitle3",$param2);
?>
<li><?php echo(types_render_field("portfoliopicture3", $param)); ?></li>
</ul>
</div>
</div>
</div>
<?php endif; ?>
我注意到如果我进入wp includes/media.php并转到函数image\u resize\u维度
我可以编辑出一些功能,它不会自动裁剪图像。但是,它也不会调整它们的大小,所以一张1000像素x 900像素的图片就是这样
我很确定问题出在下面的wp includes\media.php函数中:
function image_resize_dimensions($orig_w, $orig_h, $dest_w, $dest_h, $crop = false) {
if ($orig_w <= 0 || $orig_h <= 0)
return false;
// at least one of dest_w or dest_h must be specific
if ($dest_w <= 0 && $dest_h <= 0)
return false;
// plugins can use this to provide custom resize dimensions
$output = apply_filters( 'image_resize_dimensions', null, $orig_w, $orig_h, $dest_w, $dest_h, $crop );
if ( null !== $output )
return $output;
if ( $crop ) {
// crop the largest possible portion of the original image that we can size to $dest_w x $dest_h
$aspect_ratio = $orig_w / $orig_h;
$new_w = min($dest_w, $orig_w);
$new_h = min($dest_h, $orig_h);
if ( !$new_w ) {
$new_w = intval($new_h * $aspect_ratio);
}
if ( !$new_h ) {
$new_h = intval($new_w / $aspect_ratio);
}
$size_ratio = max($new_w / $orig_w, $new_h / $orig_h);
$crop_w = round($new_w / $size_ratio);
$crop_h = round($new_h / $size_ratio);
$s_x = floor( ($orig_w - $crop_w) / 2 );
$s_y = floor( ($orig_h - $crop_h) / 2 );
} else {
// don't crop, just resize using $dest_w x $dest_h as a maximum bounding box
$crop_w = $orig_w;
$crop_h = $orig_h;
$s_x = 0;
$s_y = 0;
list( $new_w, $new_h ) = wp_constrain_dimensions( $orig_w, $orig_h, $dest_w, $dest_h );
}
// if the resulting image would be the same size or larger we don't want to resize it
if ( $new_w >= $orig_w && $new_h >= $orig_h )
return false;
// the return array matches the parameters to imagecopyresampled()
// int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h
return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
}
function image\u resize\u维度($orig\u w、$orig\u h、$dest\u w、$dest\u h、$crop=false){
if($orig_w我刚刚删除并运行了这些文件。从您所说的来看,尽管代码正确,但它显然获取了一个错误的图像大小(通过includes/fields/image.php上的说明确认)
你可以随意定制一下插件。我发现可以覆盖上传过程
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
echo "File is valid, and was successfully uploaded.\n";
var_dump( $movefile);
} else {
echo "Possible file upload attack!\n";
}
除此之外,我还必须与开发人员讨论您的问题。如果不登录您的网站,我找不到任何其他帮助。:)希望你一切顺利,我会关注这一页。我注意到只有在图像长度低于1000px时才会发生剪切。有什么办法可以阻止剪切吗?显示这些图像的代码在哪里?你使用哪个WP函数来显示它们?@BenRacicot我编辑了一篇文章,显示它看起来像是在显示ima我不知道那个插件,但使用get\u post\u自定义函数访问自定义字段值解决了其他问题。然后回显本地get\u post\u缩略图($id,$size,$attr)使用所需的大小将确保正确的图像大小。抱歉,我无法提供更多帮助。我不知道如果我使用get_post_custom来获取img url,它将如何工作以获取_post_缩略图?不会获取_post_缩略图返回1项吗?此实例中有3项。感谢您的帮助,我最终编辑了用于调整图像大小的类型插件_dimensions从插件中调用,并手动将$crop设置为false。它停止了图像的裁剪,但现在我正在处理图像的正确大小调整。我应该使用laravel而不是wordpress,但是哦,嗯,是的,对不起。你能photoshop将它们编辑到正确的大小预上载以便获得一致的结果吗?从未使用过Laravely啊,这就是我正在做的。没有我希望的那么精确,但我想这是wordpress的陷阱之一。谢谢你的帮助@BenRacicot