我需要傳遞一個像字節數組的圖像(Image _thresholdedImage
)......我不知道如何做到這一點。任何想法?謝謝!在Xamarin.Forms中將圖像轉換爲字節數組
_thresholdedImage.Source = ImageSource.FromStream (() => photo.Source);
var tessResult = await _tesseractApi.SetImage(imageBytes);
我需要傳遞一個像字節數組的圖像(Image _thresholdedImage
)......我不知道如何做到這一點。任何想法?謝謝!在Xamarin.Forms中將圖像轉換爲字節數組
_thresholdedImage.Source = ImageSource.FromStream (() => photo.Source);
var tessResult = await _tesseractApi.SetImage(imageBytes);
我無法在X.Forms中對其進行轉換,而是將以下代碼與依賴項服務一起使用。謝謝你們。
public async Task<byte[]> GetBytesFromImage(string filePath)
{
ConvertImageToBW(filePath);
// Create another bitmap that will hold the results of the filter.
Bitmap thresholdedBitmap = Bitmap.CreateBitmap (BitmapFactory.DecodeFile(filePath));
thresholdedBitmap = BitmapFactory.DecodeFile (thresholdedImagePath);
byte[] bitmapData;
using (var stream = new MemoryStream())
{
thresholdedBitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
bitmapData = stream.ToArray();
}
return bitmapData;
}
我的xamarin.forms不知道位圖。我應該加入一些特別的東西嗎我究竟做錯了什麼? – Gulzar
@Gulzar在每個平臺上創建你的本地實現。 –
您是否嘗試過使用轉換器?
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ImageSource retSource = null;
if (value != null)
{
byte[] imageAsBytes = (byte[])value;
retSource = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));
}
return retSource;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
您可以使用以下功能:
public async Task<byte[]> Download(string url)
{
using (HttpClient client = new HttpClient())
{
byte[] fileArray = await client.GetByteArrayAsync(url);
return fileArray;
}
}
歡迎來到Stack Overflow!雖然這段代碼可能會回答這個問題,但最好包含關於問題的描述,以及代碼如何解決給定問題。對於將來,這裏是一些信息,[如何破解一個真棒回答](http://stackoverflow.com/help/how-to-answer)在堆棧溢出。 – dirtydanee
通過xamairn表單中使用Java.Io我們可以從ImagePath的字節數組。 它適用於所有平臺。
private static byte[] GetBytesFromImage(string imagePath)
{
var imgFile = new File(imagePath);
var stream = new FileInputStream(imgFile);
var bytes = new byte[imgFile.Length()];
stream.Read(bytes);
return bytes;
}
byte[] bitmapData;
using (var stm = new MemoryStream())
{
snapshot.Compress(Bitmap.CompressFormat.Png, 0, stm);
bitmapData = stm.ToArray();
}
下面的代碼可以用於圖像轉換成字節array.Here 跨媒體插件用於從攝像機捕獲圖像。
public byte[] imageByte;
Stream imageStream = null;
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{ Name = "pic.jpg"});
if (file == null) return;
imageStream = file.GetStream();
BinaryReader br = new BinaryReader(imageStream);
imageByte = br.ReadBytes((int)imageStream.Length);
請詳細說明'SetImage()'的函數簽名。假設'SetImage()'需要一個'byte []',請使用這裏提供的答案:http://stackoverflow.com/a/23731642/5296568。將格式調整爲任何函數所期望的(位圖,也許?)。 (我只在https://zdenop.github.io/tesseract-doc/group___advanced_a_p_i.html#gaa463622111f3b11d8fca5863709cc699找到了C++文檔)。 –