Как мы можем конвертировать изображения Tiff в растровые изображения с помощью LibTiff.Net в Android Xamarin?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как мы можем конвертировать изображения Tiff в растровые изображения с помощью LibTiff.Net в Android Xamarin?

Сообщение Anonymous »

Я хочу преобразовать изображение в формате tiff с помощью LibTiff.Net, я уже это сделал, но поверх каждого растрового изображения есть черная линия, так что я что-то упускаю? может быть, какие-нибудь теги Tifftag?

Код: Выделить всё

private static Bitmap GetBitmapForTiffImage(
IStreamSource streamSource,
Rect sourceRectangle)
{
// Create a TIFF image from the stream source.
using var tiffImage = CreateTiffImageFromStream(streamSource);

if (tiffImage == null)
return null;

// Extract coordinates and dimensions of the source rectangle.
var sourceX = sourceRectangle.Left;
var sourceY = sourceRectangle.Top;
var sourceWidth = sourceRectangle.Width();
var sourceHeight = sourceRectangle.Height();

// Create Android Bitmap with specified dimensions and configuration.
var config = Bitmap.Config.Argb8888;
if (config == null)
return null;

var bitmap = Bitmap.CreateBitmap(sourceWidth, sourceHeight, config);

// Now Reading TIFF image into Bitmap.
// Buffer to hold scanline data from the TIFF image.
var scanline = new byte[tiffImage.ScanlineSize()];

// Iterate through each row of the source rectangle.
var destY = 0;
for (var y = sourceY; y < sourceY + sourceHeight; y++)
{
// Read the scanline data from the TIFF image.
tiffImage.ReadScanline(scanline, y);
var destX = 0;

// Iterate through each pixel in the current row.
for (var x = sourceX; x < sourceX + sourceWidth; x++)
{
// Assuming 3 bytes per pixel (RGB).
var index = x * 3;

// Extract RGB components from the scanline buffer and create a color.
var pixelColor = Color.Argb(255, scanline[index], scanline[index + 1], scanline[index + 2]);

// Set the pixel color in the Bitmap at the current coordinates.
bitmap.SetPixel(destX, destY, pixelColor);
destX++;
}

destY++;
}

return bitmap;
}
Я уже пробовал менять координаты и играться с циклом. Прямоугольные значения идеальны.
Как мне справиться с этой раздражающей черной линией?

Подробнее здесь: https://stackoverflow.com/questions/783 ... id-xamarin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»