Создайте google.cloud.vision.v1.image из System.Drawing.Bitmap - PullRequest
4 голосов
/ 17 мая 2019

В настоящее время я использую следующий код для создания google.cloud.vision.v1.image из локального файла

var image = Image.FromFile(path);

Чтобы сэкономить пропускную способность и время обработки, мне нужно изменить размер этого изображения перед отправкой на обработку. Я могу изменить размер System.Drawing.Bitmap, но как мне создать google.cloud.vision.v1.image из этого растрового изображения.

Может кто-нибудь указать мне на документацию этого класса?

1 Ответ

3 голосов
/ 20 мая 2019

Стоит отметить, что вы используете метод Google.Cloud.Vision.V1.Image FromFile(), а не .NET System.Drawing.Image.

Класс изображений Google - это просто оболочка, которая позволяет вам вызывать их службы. Он не содержит методов изменения размера или лайков.

Таким образом, вам придется изменить размер локального изображения , затем записать его в поток в нужном формате , а затем создать класс изображения Google из потока.

Этот код будет выглядеть примерно так:

System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(path);
System.Drawing.Image resizedImage = ResizeImage(sourceImage, width: 800, height: 600);
System.IO.Stream imageStream = resizedImage.ToStream(ImageFormat.Jpeg);
Google.Cloud.Vision.V1.Image resizedImageToUpload = Google.Cloud.Vision.V1.FromStream(imageStream);

И, конечно, вам понадобится using() { ... } или Dispose() здесь или там.

...