線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1185
推到 Plurk!
推到 Facebook!

圖像format和轉換問題

尚未結案
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-25 23:27:50 IP:221.124.xxx.xxx 未訂閱
例如我用的格色或是bmp 或pcx. 可以把圖像的data變做byte存入一個變數嗎? 還有一條問題是如何將一個彩色圖像轉做黑白? 我在公司用一個barcode printer ,當收到1時會print一個黑色的點. 0是白色的點.最大問題是我不知如何判斷彩色圖像的值何時print黑色和白色.我用小畫家時.把圖像變全黑. 通常值都是ff. 而白色則是00 (十六進制) 感謝大大幫忙^^
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-26 10:43:00 IP:210.244.xxx.xxx 未訂閱
彩色的東西....你要試著從紅藍綠三個顏抽掉一個顏色 然後就可以根據剩下的二個顏色取其中一個值,在把大於 128的變成黑的,小於128的變成白的,然後就可以去判斷了 ,其實這跟一些影像辨視的理論有觀的,要實作的話你可能 必需去找一些相關的資料喔....
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-26 12:36:25 IP:219.133.xxx.xxx 未訂閱
引言: 例如我用的格色或是bmp 或pcx. 可以把圖像的data變做byte存入一個變數嗎? 還有一條問題是如何將一個彩色圖像轉做黑白? 我在公司用一個barcode printer ,當收到1時會print一個黑色的點. 0是白色的點.最大問題是我不知如何判斷彩色圖像的值何時print黑色和白色.我用小畫家時.把圖像變全黑. 通常值都是ff. 而白色則是00 (十六進制) 感謝大大幫忙^^
把 data 变成 byte 没问题啊。比如,用 TImage,把图象装进来,然后再送到TStream里去。如果你感觉TStream不好用,再送进array of char里去,或者送进string里去。类似以下的代码:
var
  S:String;
  Stream:TMemoryStream;
  c: array[0..65535] of char
begin
  Image1.Picture.LoadFromFile('c:\yourPicture.bmp');
  Stream:=TMemoryStream.Create;
  try
    Image1.Picture.SaveToStream(Stream);
    Stream.Position:=0;
    Stream.Read(c,Stream.Size); //保存到 array of char里去。
    SetLength(S,Stream.Size);
    Stream.Position:=0;
    Stream.Read(S[1],Stream.Size); //保存到字符串里去
  finally
    Stream.Free;
  end;
end;
至于彩色转黑白,你说的 Barcode是全黑全白。如果有灰度等级,你想怎么处理? 如果要转为全黑全白,你在本BBS搜索一下关于图象二值化的贴,有讲到。
tidal
初階會員


發表:93
回覆:32
積分:25
註冊:2003-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-26 12:55:12 IP:202.82.xxx.xxx 未訂閱
引言:
引言: 例如我用的格色或是bmp 或pcx. 可以把圖像的data變做byte存入一個變數嗎? 還有一條問題是如何將一個彩色圖像轉做黑白? 我在公司用一個barcode printer ,當收到1時會print一個黑色的點. 0是白色的點.最大問題是我不知如何判斷彩色圖像的值何時print黑色和白色.我用小畫家時.把圖像變全黑. 通常值都是ff. 而白色則是00 (十六進制) 感謝大大幫忙^^
把 data 变成 byte 没问题啊。比如,用 TImage,把图象装进来,然后再送到TStream里去。如果你感觉TStream不好用,再送进array of char里去,或者送进string里去。类似以下的代码:
var
  S:String;
  Stream:TMemoryStream;
  c: array[0..65535] of char
begin
  Image1.Picture.LoadFromFile('c:\yourPicture.bmp');
  Stream:=TMemoryStream.Create;
  try
    Image1.Picture.SaveToStream(Stream);
    Stream.Position:=0;
    Stream.Read(c,Stream.Size); //保存到 array of char里去。
    SetLength(S,Stream.Size);
    Stream.Position:=0;
    Stream.Read(S[1],Stream.Size); //保存到字符串里去
  finally
    Stream.Free;
  end;
end;
至于彩色转黑白,你说的 Barcode是全黑全白。如果有灰度等级,你想怎么处理? 如果要转为全黑全白,你在本BBS搜索一下关于图象二值化的贴,有讲到。
Stream.Read(S[1],Stream.Size); 為什麼是S[1] 而不是s?
系統時間:2024-07-06 14:22:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!