裁剪图像,然后将其保存在同一目录中

Posted

技术标签:

【中文标题】裁剪图像,然后将其保存在同一目录中【英文标题】:Crop an image and then save it in the same directory 【发布时间】:2016-04-22 02:19:27 【问题描述】:

我想裁剪 100x100px 图像的一部分,例如从中间裁剪到 20px 高和 30px 宽,然后用 php 将其保存在另一个文件中。

我正在阅读和测试一些代码,但我认为我迷路了。

我想这样做是因为稍后我想使用 OCR 从裁剪的新 img 中获取文本。

任何帮助都会很棒!

这是我在 php.net 的文档中找到的一些代码

<?php
// Create image instances
$src = imagecreatefrompng('waka.png');
$dest = "Select somehow /images ";

// Copy
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Output and free from memory
header('Content-Type: image/png');
imagepng($dest); 

imagedestroy($dest);
imagedestroy($src);
?>

当我在本地服务器上运行 img 时,我遇到了一些关于 img 无法显示的错误。

我不确定我需要更改什么才能获得新的 png。实际上我有 2 个 img waka.png 和 wuku.png 用于测试。

【问题讨论】:

你有什么代码可以给我们看吗?然后我们可以帮助您改进它,以使某些东西有效。我们无法为您编码。 我只是添加了来自 php.net 的代码,我认为应该更容易得到我想要的东西 你试过了吗?如果它不是您的代码,它对我们没有多大帮助。尝试一些代码并告诉我们错误是什么,或者您得到了什么不符合预期的情况。 这不是所有的原始代码,在原始代码中,源是 gif,目标是 imagecreatetruecolor(80, 40);我想在这里尝试的是剪切 waka.png 的一部分并将其保存到另一个新的 png。但是当我加载代码时它说“它无法显示图像localhost...因为它有错误” 【参考方案1】:

从你的代码开始,这个对我有用:

<?php
// load your source image
$src = imagecreatefrompng('1.png');
// create an image resource of your expected size 30x20
$dest = imagecreatetruecolor(30, 20);
// Copy the image
imagecopy(
    $dest, 
    $src, 
    0,    // 0x of your destination
    0,    // 0y of your destination
    50,   // middle x of your source 
    50,   // middle y of your source
    30,  // 30px of width
    20   // 20px of height
);

// The second parameter should be the path of your destination
imagepng($dest, '2.png');

imagedestroy($dest);
imagedestroy($src);

您应该将 2.png 作为裁剪后的图像。

【讨论】:

这正是我想要的!谢谢!我不是很擅长 php。

以上是关于裁剪图像,然后将其保存在同一目录中的主要内容,如果未能解决你的问题,请参考以下文章

如何在 p5.js 中裁剪图像而不在屏幕上绘制图像

如何使用 Java 裁剪图像而不将其加载到内存中

如何使用(非方形)曲奇模板裁剪照片?

裁剪图像不会成功

C#图像裁剪、分割、保存

裁剪 JPEG 图像而不重新采样