FromBinaryメソッドを持つ画像コンポーネントを使用しています。入力ストリームをバイト配列に変換するにはどうすればいいですか
HttpPostedFile file = context.Request.Files[0];
byte[] buffer = new byte[file.ContentLength];
file.InputStream.Read(buffer, 0, file.ContentLength);
ImageElement image = ImageElement.FromBinary(byteArray);
BinaryReaderオブジェクトを使用して、ストリームから次のようなバイト配列を返します。
byte[] fileData = null;
using (var binaryReader = new BinaryReader(Request.Files[0].InputStream))
{
fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binData = b.ReadBytes(file.InputStream.Length);
2行目は、
byte[] binData = b.ReadBytes(file.ContentLength);
ファイルInputStream.Positionがストリームの最後に設定されている場合、機能しません。私の追加行:
Stream stream = file.InputStream;
stream.Position = 0;
あなたの質問では、bufferとbyteArrayの両方がbyte []のようです。そう:
ImageElement image = ImageElement.FromBinary(buffer);
画像にWebページv2を使用している場合は、 WebImage Class を使用します
var webImage = new System.Web.Helpers.WebImage(Request.Files[0].InputStream);
byte[] imgByteArray = webImage.GetBytes();
stream.copytoの前に、stream.positionを0にリセットする必要があります。その後、正常に動作します。