نمایش نتایج 1 تا 2 از 2

نام تاپیک: تبدیل jpg به tiff با استفاده از کتابخانه libtiff

  1. #1
    کاربر دائمی
    تاریخ عضویت
    دی 1390
    محل زندگی
    اصفهان
    سن
    36
    پست
    194

    تبدیل jpg به tiff با استفاده از کتابخانه libtiff

    سلام
    من میخام یک فایل jpg را به tif تبدیل کنم.
    با استفاده از libtiff
    این انجام میشه و فایل رو درست میسازه
    اما وقتی فایل tiff رو با استفاده از kdtele fax میفرستم
    فایلی که خروجیه رنگ مشکی و سفیدش بجای هم چاپ میشه

    کسی کار کرده بمن راهنمایی کنه

    اینم کدش
       public static byte[] GetTiffImageBytes(Bitmap img, bool byScanlines)
    {
    try
    {
    byte[] raster = GetImageRasterBytes(img);

    using (MemoryStream ms = new MemoryStream())
    {
    using (Tiff tif = Tiff.ClientOpen("InMemory", "w", ms, new TiffStream()))
    {
    if (tif == null)
    return null;
    tif.SetField(TiffTag.IMAGEWIDTH, img.Width);
    tif.SetField(TiffTag.IMAGELENGTH, img.Height);
    tif.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX4);
    tif.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISBLACK);

    tif.SetField(TiffTag.ROWSPERSTRIP, img.Height);
    tif.SetField(TiffTag.XRESOLUTION,200);
    tif.SetField(TiffTag.YRESOLUTION,200);

    tif.SetField(TiffTag.SUBFILETYPE, 0);
    tif.SetField(TiffTag.BITSPERSAMPLE, 1);
    tif.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB);
    tif.SetField(TiffTag.ORIENTATION, Orientation.TOPLEFT);

    tif.SetField(TiffTag.SAMPLESPERPIXEL, 1);
    tif.SetField(TiffTag.T6OPTIONS, 0);
    tif.SetField(TiffTag.RESOLUTIONUNIT, ResUnit.INCH);
    tif.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);

    int tiffStride = tif.ScanlineSize();
    int stride = raster.Length / img.Height;

    if (byScanlines)
    {
    for (int i = 0, offset = 0; i < img.Height; i++)
    {
    bool res = tif.WriteScanline(raster, offset, i, 0);
    if (!res)
    return null;

    offset += stride;
    }
    }
    else
    {
    if (tiffStride < stride)
    {
    byte[] stripBits = new byte[tiffStride * img.Height];
    for (int i = 0, rasterPos = 0, stripPos = 0; i < img.Height; i++)
    {
    System.Buffer.BlockCopy(raster, rasterPos, stripBits, stripPos, tiffStride);
    rasterPos += stride;
    stripPos += tiffStride;
    }
    int n = tif.WriteEncodedStrip(0, stripBits, stripBits.Length);
    if (n <= 0)
    return null;
    }
    else
    {
    int n = tif.WriteEncodedStrip(0, raster, raster.Length);
    if (n <= 0)
    return null;
    }
    }
    }

    return ms.GetBuffer();
    }
    }
    catch (Exception)
    {
    return null;
    }
    }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1390
    محل زندگی
    اصفهان
    سن
    36
    پست
    194

    نقل قول: تبدیل jpg به tiff با استفاده از کتابخانه libtiff

    مشکل رو فهمیدم
       tif.SetField(TiffTag.COMPRESSION, Compression.CCITTFAX4);

    باید بشه
       tif.SetField(TiffTag.COMPRESSION, Compression.none);

تاپیک های مشابه

  1. مبتدی: استفاده از libtiff برای تبدیل چند jpg به tiff
    نوشته شده توسط zhr.rezae66i در بخش C#‎‎
    پاسخ: 3
    آخرین پست: جمعه 21 فروردین 1394, 18:21 عصر
  2. پاسخ: 10
    آخرین پست: سه شنبه 14 آبان 1392, 14:22 عصر
  3. تابعی که برای تبدیل تاریخ شمسی به میلادی استفاده میشه!
    نوشته شده توسط zeinab03 در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 12 بهمن 1384, 03:38 صبح
  4. تبدیل PDF به TIFF
    نوشته شده توسط کم حوصله در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: چهارشنبه 11 خرداد 1384, 16:35 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •