首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何读取WIC图像中的像素

如何读取WIC图像中的像素
EN

Stack Overflow用户
提问于 2010-08-23 10:32:08
回答 1查看 1.9K关注 0票数 1

下面的代码(来自这个线程:How to use Delphi 2010's new WIC capability on Canon files?)在BitMap中打开一个WIC图像。

但是,如果WIC像素值的动态范围很大,则此代码会丢失大量信息,因为它必须将宽动态范围缩放到位图像素可以容纳的低范围内。

代码语言:javascript
复制
procedure TForm116.Button1Click(Sender: TObject);
var
  WIC: TWICImage;
begin
  WIC := TWICImage.Create;
  try
    WIC.LoadFromFile('MyFilename.raw');
    Image1.Picture.Graphic.Assign(WIC);
  finally
    WIC.Free;
  end;
end;

谁能给我看一下示例代码,让我直接从TWICImage读取像素值,这样我就可以在不丢失信息的情况下访问图像数据?我需要每个像素的强度(灰度)值,如果没有直接可用的,也许可以从RGB值计算出来?

类似于:

代码语言:javascript
复制
var
  PixelValue: Integer; // Grayscale

for Row := 0 to WIC.Width do
  for Col := 0 to WIC.Height
     PixelValue := WIC.GetPixelValue(Row, Col);
EN

回答 1

Stack Overflow用户

发布于 2010-08-24 02:10:42

您应该能够将TWICImage转换为TBitmap,然后访问位图的Pixels或ScanLine属性来获取像素数据。就像你加载JPEG时做的那样。

例如(未经测试的伪代码)

代码语言:javascript
复制
w := TWICImage.Create();
w.LoadFromFile(...)
b := TBitmap.Create;
b.assign( w);
ptr := b.ScanLine[...]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3544377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档