Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [GD] Dzielenie obrazka
Forum PHP.pl > Forum > PHP
GrayHat
Witam. Powiecmy ze mam obrazek o wymiarach 250x25
i teraz mam pytanie. jak go podzielic na 10 rownych kawalkow (25x25)questionmark.gif

najlepiej jak by ktos odchaczyl jakas funkcje, np:

function img ($plik_obrazka,$value){
i tu kod
}

przy czym $value jest to liczba od 0 do 9.... i zeby ta funkcja zwracala ten kawalek obrazka...
b. prosze o pomoc...

troche nagmatwane chyba? smile.gif
FiDO
zainteresuj sie funkcja [manual:3606cf5575]imagecopy[/manual:3606cf5575]

A wyczuwam, ze chodzi Ci o wyciagniecie odpowiedniej cyfry z obrazka skladajacego sie z cyfr 0-9 (stad na 10 czesci smile.gif ), wiec mozesz poanalizowac sobie taki kod, ktory wyszedl spod moich palcow pare miesiecy temu:
[php:1:3606cf5575]
<?
$filename = "cyfry.png";
$q = $_SERVER['QUERY_STRING'];

$im = imagecreatefrompng($filename);
$y = imagesy($im);
$x = (imagesx($im) / 10);

$im2 = imagecreate($x * strlen($q),$y);

for ($i = 0; $i < strlen($q);$i++)
{
imagecopy($im2, $im, $i*$x+1, 1, (int)$q[$i] * $x + 1, 1, $x, $y);
}

fclose($fp);
imagepng($im2);

?>
[/php:1:3606cf5575]
Wycialem czesc sprawdzajaca bledy, zeby go mozliwie skrocic i nie zmniejszac czytelnosci. Skrypt "odpala" sie tak:
Kod
<img src="img.php?2345" alt="" />

Wygeneruje to grafike z cyframi 2345 pobranymmi z pliku cyfry.png.
Dziala dla kazdego rozmiaru cyfr pod warunkiem, ze kazda cyfra ma swoje pole o stalej szerokosci.
Idealny moze nie jest, ale dziala, na poczatek Ci wystarczy.
Masz, pobaw sie winksmiley.jpg
adwol
Cytat
Witam. Powiecmy ze mam obrazek o wymiarach 250x25
i teraz mam pytanie. jak go podzielic na 10 rownych kawalkow (25x25)questionmark.gif

[php:1:ec5bdb3c68]<?php
function img($plik, $value)
{
$h = 25;
$w = 25;
$src = imagecreatefrompng($plik);
$dst = imagecreatetruecolor($w, $h);
imagecopy($dst, $src, 0, 0, $w*$value, 0, $w, $h);
return $dst;
}
?>[/php:1:ec5bdb3c68]
Piszę z głowy więc może nie do końca działać. winksmiley.jpg
GrayHat
Cytat
zainteresuj sie funkcja [manual:003e83fe02]imagecopy[/manual:003e83fe02]

A wyczuwam, ze chodzi Ci o wyciagniecie odpowiedniej cyfry z obrazka skladajacego sie z cyfr 0-9 (stad na 10 czesci smile.gif ), wiec mozesz poanalizowac sobie taki kod, ktory wyszedl spod moich palcow pare miesiecy temu:
[php:1:003e83fe02]
<?
$filename = "cyfry.png";
$q = $_SERVER['QUERY_STRING'];

$im = imagecreatefrompng($filename);
$y = imagesy($im);
$x = (imagesx($im) / 10);

$im2 = imagecreate($x * strlen($q),$y);

for ($i = 0; $i < strlen($q);$i++)
{
imagecopy($im2, $im, $i*$x+1, 1, (int)$q[$i] * $x + 1, 1, $x, $y);
}

fclose($fp);
imagepng($im2);

?>
[/php:1:003e83fe02]
Wycialem czesc sprawdzajaca bledy, zeby go mozliwie skrocic i nie zmniejszac czytelnosci. Skrypt "odpala" sie tak:
Kod
<img src="img.php?2345" alt="" />

Wygeneruje to grafike z cyframi 2345 pobranymmi z pliku cyfry.png.
Dziala dla kazdego rozmiaru cyfr pod warunkiem, ze kazda cyfra ma swoje pole o stalej szerokosci.
Idealny moze nie jest, ale dziala, na poczatek Ci wystarczy.
Masz, pobaw sie winksmiley.jpg



jest spoko, tylko moje pliki som typu GIF :| i przy tym kodzie nie kce isc :| moglbys poprawic ten kod? ps: masz gg?
uboottd
Zmiana polega na wymianie w lini nr 5 funkcji imagecreatefrompng na odpowiednia dla Ciebie (imagecreatefromjpeg, imagecreatefromgif, imagecreatefromwbmp i jeszcze pare innych). Jest jeszcze imagecreatefromgd, ale poki co jest nieudokumentowana.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.