小编Har*_*gar的帖子

将ppm转换为png

在Linux中我得到.PPM文件作为图像格式,这需要转换为PNG然后保存.我正在寻找一些API来实现从PPM到PNG的转换.这可以使用GDI +完成,因为这将成为原生的吗?

如果那是不可能的,那么我认为freeimage或pnglib可以实现这一点,但是如果可能的话我宁愿使用原生的gdi +.

c++ image

12
推荐指数
4
解决办法
2万
查看次数

编写一个函数来释放指针并将其赋值为NULL

我在最近的一次采访中被问到这个问题,基本上是编写了一个函数来结合free的功能和赋值null.我用以下方式回答:

void main()
{
      int *ptr;
      ptr = new int;
      ptr = newdelete(ptr);
}

(int*) newdelete (int *ptr)
{
      delete(ptr);
      return NULL;
}
Run Code Online (Sandbox Code Playgroud)

因此在执行之后,当我从函数返回时,ptr本地main将保持空值newdelete.如果我刚刚NULL在newdelete函数中分配,则ptr本地newdelete将被取消,而不是ptr本地的main.

我认为我的解决方案是正确的,面试官也接受了.但是,他期待着其他一些答案.他坚持要求我不NULL从函数返回并仍然达到预期的效果.

有没有办法实现这一目标?我能想到的只是传递另一个参数,它是指向ptr本地指针的指针main,但我不明白为什么它比我做的更好!

c++ delete-operator dangling-pointer

11
推荐指数
2
解决办法
913
查看次数

用C++创建PDF阅读器

所以我想用C++作为业余爱好项目制作一个PDF阅读器.问题是我找不到很多开端,所以如果有人从事过类似的项目请指导我,一些网络链接会很棒!我将使用Windows环境和Visual Studio.

c++

4
推荐指数
2
解决办法
2万
查看次数

将颜色bmp转换为灰度bmp?

我正在尝试将彩色BMP文件转换为灰度BMP.输入bmp是24位,我在输出端产生相同的24位bmp,这次只是灰度级.

我正在使用的代码是

for(int x = 0; x < max; x++)
{
    int lum;
    lum = (r[x]*0.30) + (g[x]*0.59) + (b[x]*0.11);
    r[x] = lum;
    g[x] = lum;
    b[x] = lum;
}
Run Code Online (Sandbox Code Playgroud)

r,g,b数组是RGB颜色分量,我有他们在char *r,*g,*b.

由于某些原因,我没有得到干净的输出.我正在附加我对这个问题的输出,它的斑驳并且在地方包含白色和黑色区域.那么我在这里做错了什么?

  1. 是因为计算lum时数据丢失还是将int存储为char有什么问题?
  2. 灰度bmp可以不是24位吗?或者我在转换后存储rgb值的方式有问题吗?

任何有关这方面的帮助都会非常有用.谢谢.

c c++ bmp

1
推荐指数
1
解决办法
5403
查看次数

标签 统计

c++ ×4

bmp ×1

c ×1

dangling-pointer ×1

delete-operator ×1

image ×1