я читал о imagesx,но не видел что можно сделать (300) например
нужно сделать регулятор масштаба получаемой картинки, а то она получается очень большая.
<html>
<head><title>ASCII In Color</title></head>
<body><center>
<form action="" method="post">
<h3>You image ".png" link:</h3><br>
<input type="text" name="img" value="http://nonoob.ru/asciicolor/noob.jpg"><br>
<h3>Type:</h3><br>
<input type="text" name="typ" value="#%2X%2X%2X"><br>
<input type="submit" value="Go">
</form></center>
</body>
</html>
<?PHP
$im=$_POST['img'];
$imga=htmlspecialchars($im);
$tp=$_POST['typ'];
$image = imagecreatefrompng($imga);
if ($image) {
echo '<PRE STYLE="font: 4px/2px Courier New;">';
$width = imagesx($image);
$height = imagesy($image);
for($y = 0; $y < $height; ++$y) {
for($x = 0; $x < $width; ++$x) {
$thiscol = imagecolorat($image, $x, $y);
$rgb = imagecolorsforindex($image, $thiscol);
$htmlcol = sprintf($tp, $rgb['red'], $rgb['green'], $rgb['blue']);
$char = "<FONT COLOR=\"$htmlcol\">#</FONT>";
echo $char;
}
echo "\n";
}
echo '</PRE>';
}
?>
?>
пробую делать imagecopyresampled
$image = imagecreatefrompng($imga);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 10, 10);
if ($image) {
echo '<PRE STYLE="font: 4px/2px Courier New;">';
$width = imagesx($image);
$height = imagesy($image);
for($y = 0; $y < $height; ++$y) {
for($x = 0; $x < $width; ++$x) {
$thiscol = imagecolorat($image, $x, $y);
$rgb = imagecolorsforindex($image, $thiscol);
$htmlcol = sprintf($tp, $rgb['red'], $rgb['green'], $rgb['blue']);
$char = "<FONT COLOR=\"$htmlcol\">#</FONT>";
echo $char;
}
echo "\n"
правильно ли?
Спустя 3 минуты, 44 секунды (23.02.2011 - 11:44) alex12060 написал(а):
Цитата |
ascii to color, трабл |
Почему такое название? оО
Спустя 12 минут, 37 секунд (23.02.2011 - 11:57) Invis1ble написал(а):
xhugo
если хочешь, могу выложить свой код, которым я ресайз делаю. Может разберешься...
Только он без комментов, но думаю ты из названий переменных поймешь
если хочешь, могу выложить свой код, которым я ресайз делаю. Может разберешься...
Только он без комментов, но думаю ты из названий переменных поймешь
Спустя 3 минуты, 22 секунды (23.02.2011 - 12:00) xhugo написал(а):
Цитата |
Почему такое название? оО |
а что не понятно?
перевод из картинки в символы.
проблема с том ,что получаю я большую картинку. а мне нужно регулировать
Цитата |
если хочешь, могу выложить свой код, которым я ресайз делаю. Может разберешься |
можно. но думаю врятли разберусь, раз тут даже не могу толком исправить проблему
Спустя 28 секунд (23.02.2011 - 12:01) Invis1ble написал(а):
вот
Свернутый текст
/**
* @author Invis1ble
* @version 0.4
*/
function imageResize($src_filename, $default_width)
{
$default_quality = 100;
$extension = pathinfo($src_filename, PATHINFO_EXTENSION);
$function_piece = str_ireplace('jpg', 'jpeg', $extension);
$function = 'imagecreatefrom' . $function_piece;
$src = $function($src_filename);
$src_width = imagesx($src);
$src_height = imagesy($src);
$ratio = $src_width / $default_width;
$dest_width = round($src_width / $ratio);
$dest_height = round($src_height / $ratio);
$dest = imagecreatetruecolor($dest_width, $dest_height);
if
(
imagecopyresized($dest, $src, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height) &&
imagejpeg($dest, $src_filename, $default_quality) &&
imagedestroy($dest) &&
imagedestroy($src)
)
return true;
return false;
}
Спустя 43 минуты, 7 секунд (23.02.2011 - 12:44) xhugo написал(а):
пример можно?
принимает ссылку на картинку?
если сделаю так,то сработает?
принимает ссылку на картинку?
если сделаю так,то сработает?
<?PHP
function imageResize($src_filename, $default_width)
{
$default_quality = 100;
$extension = pathinfo($src_filename, PATHINFO_EXTENSION);
$function_piece = str_ireplace('jpg', 'jpeg', $extension);
$function = 'imagecreatefrom' . $function_piece;
$src = $function($src_filename);
$src_width = imagesx($src);
$src_height = imagesy($src);
$ratio = $src_width / $default_width;
$dest_width = round($src_width / $ratio);
$dest_height = round($src_height / $ratio);
$dest = imagecreatetruecolor($dest_width, $dest_height);
if
(
imagecopyresized($dest, $src, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height) &&
imagejpeg($dest, $src_filename, $default_quality) &&
imagedestroy($dest) &&
imagedestroy($src)
)
return true;
return false;
}
$im=$_POST['img'];
$imga=htmlspecialchars($im);
$tp=$_POST['typ'];
$image = imageResize($imga,'300')
if ($image) {
echo '<PRE STYLE="font: 4px/2px Courier New;">';
$width = imagesx($image);
$height = imagesy($image);
for($y = 0; $y < $height; ++$y) {
for($x = 0; $x < $width; ++$x) {
$thiscol = imagecolorat($image, $x, $y);
$rgb = imagecolorsforindex($image, $thiscol);
$htmlcol = sprintf($tp, $rgb['red'], $rgb['green'], $rgb['blue']);
$char = "<FONT COLOR=\"$htmlcol\">#</FONT>";
echo $char;
}
echo "\n";
}
echo '</PRE>';
}
?>
Спустя 3 дня, 11 часов, 12 минут, 23 секунды (26.02.2011 - 23:56) xhugo написал(а):
нашел еще пример
но почему вообще не работает?
function max_color($im,$x,$y,$x1,$y1) {
$colors=array();
for($i=$x;$i<$x1;$i++) for($j=$y;$j<$y1;$j++) $colors[imagecolorat($im,$i,$j)]++;
arsort($colors);
list($k,$v)=each($colors);
return $k;
}
if($_FILES["filename"]["tmp_name"])
{
$imgname=$_FILES["filename"]["tmp_name"];
$font_size=$_POST['font_size'];
echo "<div style='font-family:\"Copperplate Gothic Bold\", monospace, serif;font-size:".$font_size."px;'>
";
$im=imagecreatefromjpeg($imgname);
$size=getimagesize($imgname);
// берем горизонтальный участок
for($y=0;$y<$size[1];$y+=$font_size*2) {
// идем по квадратикам
for($x=0;$x<$size[0];$x+=$font_size) {
$hex=dechex(max_color($im,$x,$y,$x+$font_size,$y+$font_size));
$len=strlen($hex);
if($len != 6 ) {
$delta = 6 - $len;
$hex = str_repeat('0',$delta).$hex;
}
echo "<font color='#".$hex."'>".rand(0,1)."</font>";
}
echo "
";
}
imagedestroy($im);
echo "</div>";
}
<form action=upload.php method=post enctype=multipart/form-data>
<input type=file name=filename>
<input type=submit value=Загрузить></form>
но почему вообще не работает?