Table des matières
php imagick 扩展合成图片的两张方法
Maison développement back-end tutoriel php php imagick 扩展合成图片的两张方法_PHP教程

php imagick 扩展合成图片的两张方法_PHP教程

Jul 13, 2016 am 10:11 AM
图片 方法

php imagick 扩展合成图片的两张方法


方法一:compositeimages

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

/**

     *  function: 合成图片

     * @param  string      $output_url 图片保存路径

     * @param  string      $img_type   图片保存类型

     * @param  integral    $line_num   每行显示图片数量

     * @param  array       $logo_info  每张待合成图片的信息(要求所有尺寸统一)

     * @param  array       $img_list  待合成的图片绝对路径

     *

     * @return void

     */

    public function generate($output_url, $img_type, $line_num, $logo_info, $img_list=array()) {

 

        //计算图片有多少行

        $lines = ceil(count($img_list)/$line_num);

 

        $bg_width = ($logo_info['width'] + $logo_info['line_width']) * $line_num;

        $bg_height = ($logo_info['height'] + $logo_info['line_height']) * $lines;

 

        //构建画布

        $canvas = new Imagick();

        $canvas->newimage($bg_width, $bg_height, 'white');

        $canvas->setimageformat($img_type);

        $i = $j = 0;

        foreach ($img_list as $item) {

            $im = new Imagick($item);

            $x = $logo_info['line_width']*2 + $i * $logo_info['width'];

            $y = $logo_info['line_height']*2 + $j * $logo_info['height'];

             

            // $canvas->compositeimage($im -> getimage(), Imagick::COMPOSITE_OVER, $x, $y);

            $canvas -> compositeimage($im, $im->getImageCompose(), $x, $y);

 

            if (($i + 1) % $line_num === 0) {

                $i = 0;

                $j++;

            } else {

                $i++;

            }

            // unset($im);

            $im -> destroy();

        }

        $canvas->writeimage($output_url);

 

        //销毁对象

        $canvas -> destroy();

    }

Copier après la connexion



方法二:combineimages

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

/**

     *  function: 合成图片

     * @param  string      $output_url 图片保存路径

     * @param  string      $img_type   图片保存类型

     * @param  integral    $line_num   每行显示图片数量

     * @param  array       $logo_info  每张待合成图片的信息(要求所有尺寸统一)

     * @param  array       $img_list  待合成的图片绝对路径

     *

     * @return void

     */

    public function generate($output_url, $img_type, $line_num, $logo_info, $img_list=array()) {

 

        //计算图片有多少行

        $lines = ceil(count($img_list)/$line_num);

 

        $bg_width = ($logo_info['width'] + $logo_info['line_width']) * $line_num;

        $bg_height = ($logo_info['height'] + $logo_info['line_height']) * $lines;

        //构建画布

        $canvas = null;

        $canvas = new Imagick();

        $canvas -> newimage($bg_width, $bg_height, 'white');

        $i = $j = 0;

        foreach ($img_list as $item) {

            $im = null;

            $im = new Imagick($item);

            // $canvas -> readImage($item);

            $canvas -> addimage($im);

            $im -> clear();

            $im -> destroy();

        }

 

        // $canvas -> flattenImages();

        $canvas -> combineImages( Imagick::CHANNEL_ALL );

        $canvas -> writeimage($output_url);

 

        //销毁对象

        $canvas -> clear();

        $canvas -> destroy();

    }

Copier après la connexion

个人认为方法二效率更高

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/925220.htmlTechArticlephp imagick 扩展合成图片的两张方法 方法一:compositeimages /** * function: 合成图片 * @param string $output_url 图片保存路径 * @param string $img_type 图片...
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ? Mar 22, 2024 am 08:06 AM

Comment résoudre le problème de l'enregistrement automatique des images lors de la publication sur Xiaohongshu ? Où est l'image enregistrée automatiquement lors de la publication ?

Comment écrire un roman dans l'application Tomato Free Novel Partagez le tutoriel sur la façon d'écrire un roman dans l'application Tomato Novel Comment écrire un roman dans l'application Tomato Free Novel Partagez le tutoriel sur la façon d'écrire un roman dans l'application Tomato Novel Mar 28, 2024 pm 12:50 PM

Comment écrire un roman dans l'application Tomato Free Novel Partagez le tutoriel sur la façon d'écrire un roman dans l'application Tomato Novel

Comment entrer dans le bios sur la carte mère Colorful ? Apprenez-vous deux méthodes Comment entrer dans le bios sur la carte mère Colorful ? Apprenez-vous deux méthodes Mar 13, 2024 pm 06:01 PM

Comment entrer dans le bios sur la carte mère Colorful ? Apprenez-vous deux méthodes

Comment récupérer des contacts supprimés sur WeChat (un tutoriel simple vous explique comment récupérer des contacts supprimés) Comment récupérer des contacts supprimés sur WeChat (un tutoriel simple vous explique comment récupérer des contacts supprimés) May 01, 2024 pm 12:01 PM

Comment récupérer des contacts supprimés sur WeChat (un tutoriel simple vous explique comment récupérer des contacts supprimés)

Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ? Mar 21, 2024 pm 09:12 PM

Comment publier des photos dans les commentaires TikTok ? Où se trouve l'entrée des photos dans la zone commentaire ?

Comment faire sortir les images ppt une par une Comment faire sortir les images ppt une par une Mar 25, 2024 pm 04:00 PM

Comment faire sortir les images ppt une par une

Maîtrisez rapidement : comment ouvrir deux comptes WeChat sur les téléphones mobiles Huawei révélé ! Maîtrisez rapidement : comment ouvrir deux comptes WeChat sur les téléphones mobiles Huawei révélé ! Mar 23, 2024 am 10:42 AM

Maîtrisez rapidement : comment ouvrir deux comptes WeChat sur les téléphones mobiles Huawei révélé !

Le secret de l'éclosion des œufs de dragon mobiles est révélé (étape par étape pour vous apprendre à réussir l'éclosion des œufs de dragon mobiles) Le secret de l'éclosion des œufs de dragon mobiles est révélé (étape par étape pour vous apprendre à réussir l'éclosion des œufs de dragon mobiles) May 04, 2024 pm 06:01 PM

Le secret de l'éclosion des œufs de dragon mobiles est révélé (étape par étape pour vous apprendre à réussir l'éclosion des œufs de dragon mobiles)

See all articles