读取位图时如何考虑像素填充

时间:2019-06-22 22:30:20

标签: c bitmap

我正在尝试使用C从位图读取RGB像素值,我已经将像素值转储到stdout了,但是我不完全理解为什么输出是它的原样或如何更改它到我想要的样子(RGBRGBRGBRGB ..而不是RGB0RGB0RGB0RGB0 ..)。

位图是3x3、24位,第一行是红色,第二行是绿色,第三行是蓝色。

我发现了许多用于计算像素填充的方程式,但它们均不适用于我的其余代码-使我相信我的问题是由我忽略的某些问题引起的。

这是代码:(buffer_p是内存中位图的副本,data_start是像素数据开始的地址,这样做会跳过标头)

LatLng

其余代码只是打开文件并将其复制到内存中,然后设置一些变量以保存标题中有用的数据,例如高度和宽度等。

我希望输出是这样:

PolylineOptions polylineOptions = new PolylineOptions();
polylineOptions.color(Color.BLUE);
// add coordinates to polyline
for (LatLng markerCoordinate : markerCoordinates) {
    polylineOptions.add(markerCoordinate);
}

// draw
googleMap.addPolyline(polylineOptions);

实际上是这样:

/* read RGB values from image data */
for (int i = data_start; i < filesize; ++i) {
    printf("R: %x\n", buffer_p[i]);
    printf("G: %x\n", buffer_p[++i]);
    printf("B: %x\n\n", buffer_p[++i]);
}

在编译中或运行时没有错误。

0 个答案:

没有答案