Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [GD] Dzielenie obrazka
GrayHat
post 24.08.2003, 22:12:03
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
FiDO
post 24.08.2003, 23:10:43
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
adwol
post 24.08.2003, 23:23:03
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
GrayHat
post 25.08.2003, 16:03:33
Post #4





Grupa: Zarejestrowani
Postów: 566
Pomógł: 18
Dołączył: 23.08.2003
Skąd: Łomża

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
uboottd
post 25.08.2003, 18:48:05
Post #5





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.06.2025 - 22:16