C プログラムを使用して、バイナリ データを ImageMagick にストリーミングします。
inbuf = popen(string, "wb");
setbuf(inbuf, NULL); /// !!! ///
fwrite(buffer, frame, 1, inbuf);
pclose(inbuf);
また、ImageMagick は Windows 上のすべてのデータを常に受信するとは限りません (mingw)。setbuf コマンド (バッファ化を無効にする) を使用しないと、受信するデータがさらに少なくなり、Linux (gcc) でも問題が発生します。
同じバッファをファイルにダンプすると、すべてが正常に機能し、すべてのデータがディスクに書き込まれ、バッファリングを無効にする必要さえありません。
outbuf = fopen("temp\\tune.gray", "wb");
fwrite(buffer, frame, 1, outbuf);
fclose(outbuf);
奇数のバイトを送信すると問題が発生することがわかりました:)偶数を送信すると、すべて正常に動作します。バルクモードではなくデータを書き込もうとしましたが、バッファを小さな部分に分割し、データをバイト単位で送信しようとしましたが、役に立ちません。何か案は?