前提・実現したいこと
PNGの画像を読み込みんだアドラー32の値と計算した値が違うので解決したい。
プログラミング初心者です。PNGのデコード、エンコードのコードを自力で書いています。
アドラー32の計算をWikipediaなどのネット上に載っているコードを使ってみたが計算が合いません。
macプレビューではエンコードした画像を読み込んで表示できるので
表示を見ると読み込んだRGBAの値が違うという原因ではないように思います。
下のような画像です。
発生している問題・エラーメッセージ
<参考> 読み込んだadler32->2085692484 計算したadler32->3944975942
該当のソースコード
c
1unsigned long update_adler32(unsigned long adler, 2 unsigned char *buf, unsigned len) 3{ 4 unsigned long s1 = adler & 0xffff; 5 unsigned long s2 = (adler >> 16) & 0xffff; 6 int n; 7 8 for (n = 0; n < len; n++) { 9 s1 = (s1 + buf[n]) % BASE; 10 s2 = (s2 + s1) % BASE; 11 } 12 return (s2 << 16) + s1; 13} 14 15unsigned char RGB[10000];//読み込んだrgbの値 16unsigned long adler=1L; 17 18adler=update_adler32(adler,RGB,10000);
試したこと
pngをデコードしRGBA値に対して計算し、読み込んだadler32の値と比べた
pngをエンコードし、計算した値を書き込んだが、チェックするソフトでははじかれる。
共にadler32の計算値が違うようです。
チェックしない?mac OS プレビューでは表示できます。
補足情報(FW/ツールのバージョンなど)
使用ソフトはxcode 10.1です。
回答1件
あなたの回答
tips
プレビュー