[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ascii to color
xhugo
как бы на выходе получаю ОГРОМНУЮ КАРТИНКУ, как можно уменьшить?
я читал о 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>


но почему вообще не работает?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.