【发布时间】:2014-12-13 05:22:31
【问题描述】:
编辑: 因此,在搞砸了一天之后。我的问题是 sprintf。我原本以为我的循环是错误的。
sprintf('%02x',base_convert($binary, 2, 16));
我必须使用 s 而不是 x 来获得正确的输出。 X 将 FF 转换为 00,但其他转换正常。这是我用来遍历 wbmp 的循环,注意我重新调整了图像的大小,使其变为 /8, 24。
$w = imagesx($im);
$h = imagesy($im);
for($x = 0; $x <= $w; $x++)
{
$image = "";
$cntr = 0;
for($y = 0; $y <= $h; $y++)
{
$rgb = imagecolorat($im, $x, $y);
$image .= ($rgb == "") ? 0 : $rgb; //resizing causes value to return blank
if(strlen($image) == 8)
{
$imgHex = sprintf('%02s',base_convert($image, 2, 16));
$cntr++;
$line[$lineNum] .= $imgHex;
if($cntr == 3)
{
$lineNum++;
$cntr = 0;
}
$image = "";
}
}
$lineNum = 0;
}
【问题讨论】:
-
01001001 是 73 的二进制。如果发送 73 会发生什么?
-
我已经澄清了我想要做什么的问题。我的例子很糟糕。