Поместите PNG по JPG в PHP [дубликат]

Этот вопрос уже имеет ответ здесь:

Я хочу сделать следующее в PHP:

У меня есть два изображения, jpg и png. Я хочу изменить размеры jpg к тому же размеру, как png тогда помещают png на вершину. PNG имеет прозрачность, таким образом, я хотел бы сохранить это так шоу jpg внизу.

Если бы кто-либо мог бы помочь, который был бы большим!

Спасибо

17
задан Chris 15 February 2010 в 22:25
поделиться

3 ответа

<?
$png = imagecreatefrompng('./mark.png');
$jpeg = imagecreatefromjpeg('./image.jpg');

list($width, $height) = getimagesize('./image.jpg');
list($newwidth, $newheight) = getimagesize('./mark.png');
$out = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($out, $jpeg, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagecopyresampled($out, $png, 0, 0, 0, 0, $newwidth, $newheight, $newwidth, $newheight);
imagejpeg($out, 'out.jpg', 100);
?>
43
ответ дан 30 November 2019 в 10:39
поделиться

Это рабочий код, который я использую

$dest = imagecreatefrompng('mapCanvas.png');
$src = imagecreatefromjpeg('si.jpg');
imagealphablending($dest, false);
imagesavealpha($dest, true);
// Copy and merge
imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100);

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

imagedestroy($dest);
imagedestroy($src);
5
ответ дан 30 November 2019 в 10:39
поделиться

Это не совсем то, что вы хотите, но я установил fillchars =\ и просто использовать подсветку для окрашивания пустого пространства другим цветом. Он менее элегантный, но выглядит хорошо для меня.

-121--3272212-

Вероятно, Вам потребуется реализовать StartModule. В противном случае вы ведете борьбу со всеми остальными, кто борется за запрос.

Это должно начать...

Вы можете решить, где в жизненном цикле запроса вы хотите выполнить проверку и отреагировать. См. в этой статье для получения дополнительной информации

using System;
using System.IO;
using System.Web;

namespace RequestFilterModuleTest
{
    public class RequestFilterModule : IHttpModule
    {
        #region Implementation of IHttpModule

        /// <summary>
        /// Initializes a module and prepares it to handle requests.
        /// </summary>
        /// <param name="context">
        /// An <see cref="T:System.Web.HttpApplication"/> that provides access to the methods, 
        /// properties, and events common to all application objects within an ASP.NET application 
        /// </param>
        public void Init(HttpApplication context)
        {
            context.BeginRequest += ContextBeginRequest;
        }

        /// <summary>
        /// Disposes of the resources (other than memory) used by the module that implements <see cref="T:System.Web.IHttpModule"/>.
        /// </summary>
        public void Dispose()
        {
        }

        private static void ContextBeginRequest(object sender, EventArgs e)
        {
            var context = (HttpApplication) sender;

            // this is the file in question
            string requestPhysicalPath = context.Request.PhysicalPath;

            if (File.Exists(requestPhysicalPath))
            {
                return;
            }

            // file does not exist. do something interesting here.....
        }

        #endregion
    }
}

<?xml version="1.0"?>
<configuration>
    ...............................
    <system.web>
    ...........................
        <httpModules>
            <add name="RequestFilterModule" type="RequestFilterModuleTest.RequestFilterModule"/>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
    </system.web>
    ...................
</configuration>
-121--3894355-

Здесь приведена ссылка на пример, который наложит прозрачный водяной знак на изображение. Возможно, ваш вариант использования, может быть связан.

Существует также способ загрузки изображений JPG, изменения размеров изображений, включения альфа-отслеживания и экспорта изображений в GD.

Джейкоб

3
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: