Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvien yhdistäminen

SysRq868 [17.12.2004 17:16:43]

#

Elikkä olen ollut varmaankin kuollut kun joku koetti kertoa php:n kuva-funktioista, mutta onko PHP:llä mitenkään mahdollista liittää kuvia toisiinsa yhdeksi kuvaksi?

Tarkoitan esim... jonkin turvallisuuskoodin tekemistä vaikkapa rekisteröinnissä, jolla varmistetaan, ettei rekkaaja ole kone tai scripti, vaan oikea ihminen. Minulla on kansiossa kuvia yhdellä fontilla kirjain kirjaimelta tyyliin ("d.jpg" sisältää a:n, "e.jpg" sisältää b:n jne.), jos minulla on jossain arvossa laitettu kirjainrykelmä, vaikka "pekka rulettaa!" (vaikkei ihan turvallisuuskoodista menekkään) niin käyttäjä saisi eteensä yhden kokonaisen kuvan, jossa lukee fontillani "pekka rulettaa!".

Onnistuisihan tuo vaikkapa tekstinä, mutta... äh, mitä minä teille selitän, voisiko vain joku kertoa, onko mahdollista ja jos on, miten?

Antti Laaksonen [17.12.2004 17:31:54]

#

Kuvia voi yhdistellä vaikka imagecopy-funktiolla. Nokkela ohjelmoija tosin kiertää tuommoisen suojauksen tunnistamalla kirjaimet kuvan pikseleistä.

SysRq868 [17.12.2004 17:47:18]

#

No lähinnä oli ideana antaa käyttäjien tehdä omia e-kortteja tms. Kun on niin uutta että voi tehdä oman tervehdyksen anopille kaikkien vihaaman portaalin omalla logofontilla... käytin turvallisuuskoodia lähinnä esimerkkinä.

Miten tuo imagecopy toimii käytännössä? Ja kiitos suomena, eikä mitään php.net...

Blaze [17.12.2004 17:56:38]

#

Luetaan vaan sitä manuaalia, niinku muutki: https://www.php.net/manual/fi/function.imagecopy.php

Antti Laaksonen [17.12.2004 17:58:57]

#

No tässä tulee esimerkki:

<?php

// kuva, jota kopioidaan
$pikku = imagecreatefrompng("lahja.png");

// varsinainen kuva
$kuva = imagecreate(320, 200);

// taustaväri
$valkoinen = imagecolorallocate($kuva, 255, 255, 255);

// kopioidaan pikkukuvaa satunnaisiin kohtiin
for ($i = 0; $i < 15; $i++) {
    imagecopy($kuva, $pikku, rand(10, 310), rand(10, 190), 0, 0, 16, 16);
}

// lähetetään kuva selaimelle
header("Content-type: image/png");

imagepng($kuva);

?>

Parametrit ovat järjestyksessä kohdekuva, lähdekuva, piirtokohta (x ja y), kopiointikohta (x ja y) ja leveys ja korkeus.

Kuvat:
http://koti.mbnet.fi/pllk/muut/lahja.png
http://koti.mbnet.fi/pllk/muut/imagecopy.php.png
Testaus:
http://koti.mbnet.fi/pllk/muut/imagecopy.php

SysRq868 [17.12.2004 18:19:49]

#

Heh... jos tuon PHP:n saisi tekemään mappeja jotenkin, ja renderöimään tuollaisen kuvan heti kun edellinen on valmis, niin siitä saisi hyvän pelin: "Kerää kaikki lahjat ennen kuin aika loppuu!".

Kai sen voi tehä Flashillä, Javalla, C:llä tai jollain...

Mut kuitenkin, kiitos.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta