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

نام تاپیک: کوچک کردن فایل jpg در FileStream

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

    Question کوچک کردن فایل jpg در FileStream

    سلام دوستان
    در برنامه ای با استفاده از FileStream فایلی را باز میکنم و در دیتابیس ذخیره میکنم.
    بعضی از فایلهای jpg بزرگ هستند و من میخواهم سایز کوچکتر ذخیره کنم:
    var
    sFile:TFileStream;
    Ret:TThrMessageParam;
    JPG:TJPEGImage;
    BMP:TBitmap;
    Scale:Real;
    begin
    sFile:=TFileStream.Create(FileName,fmOpenRead);
    if IsThumb then begin
    JPG:=TJPEGImage.Create;
    JPG.LoadFromStream(sFile);
    BMP:=TBitmap.Create;
    if (JPG.Width>ThumbMaxWidth)or(JPG.Height>ThumbMaxHei ght) then
    if (JPG.Width/ThumbMaxWidth)>(JPG.Height/ThumbMaxHeight) then
    Scale:=JPG.Width/ThumbMaxWidth
    else
    Scale:=JPG.Height/ThumbMaxHeight
    else
    Scale:=1;
    BMP.Width:=Round(JPG.Width/Scale);
    BMP.Height:=Round(JPG.Height/Scale);
    Bmp.Canvas.StretchDraw(Rect(0,0,BMP.Width,BMP.Heig ht), JPG);
    JPG.Assign(BMP);
    JPG.SaveToFile('d:\aa.jpg');
    JPG.SaveToStream(sFile);
    BMP.Free;
    JPG.Free;
    end;

    در این خط که به صورت آزمایشی نوشته ام، فایل کوچک شده به درستی ذخیره میشود
        JPG.SaveToFile('d:\aa.jpg');

    اما در خط بعد:
        JPG.SaveToStream(sFile);

    انتظار دارم محتویات فایل کوچک شده در sFile ذخیره شود که در ادامه برنامه در دیتابیس ذخیره شود. اما فایل اصلی در دیتابیس ذخیره میشود!!
    لطفا راهنمایی کنید مشکل از کجاست؟

  2. #2

    نقل قول: کوچک کردن فایل jpg در FileStream

    از TZCompressionStream و TZDecompressionStream استفاده کن


    procedure TForm1.btnCompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LZip: TZCompressionStream;


    begin
    { Create the Input, Output, and Compressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(Edit2.Text + '.zip', fmCreate);
    LZip := TZCompressionStream.Create(clDefault, LOutput);


    { Compress data. }
    LZip.CopyFrom(LInput, LInput.Size);


    { Free the streams. }
    LZip.Free;
    LInput.Free;
    LOutput.Free;
    end;


    procedure TForm1.btnDecompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LUnZip: TZDecompressionStream;


    begin
    { Create the Input, Output, and Decompressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(ChangeFileExt(Edit1.Text, 'txt'), fmCreate);
    LUnZip := TZDecompressionStream.Create(LInput);


    { Decompress data. }
    LOutput.CopyFrom(LUnZip, 0);


    { Free the streams. }
    LUnZip.Free;
    LInput.Free;
    LOutput.Free;
    end;

  3. #3

    نقل قول: کوچک کردن فایل jpg در FileStream

    خود JPG دستور کمپرس هم دارد
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  4. #4
    کاربر دائمی
    تاریخ عضویت
    دی 1387
    محل زندگی
    اهواز
    پست
    925

    نقل قول: کوچک کردن فایل jpg در FileStream

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    از TZCompressionStream و TZDecompressionStream استفاده کن


    procedure TForm1.btnCompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LZip: TZCompressionStream;


    begin
    { Create the Input, Output, and Compressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(Edit2.Text + '.zip', fmCreate);
    LZip := TZCompressionStream.Create(clDefault, LOutput);


    { Compress data. }
    LZip.CopyFrom(LInput, LInput.Size);


    { Free the streams. }
    LZip.Free;
    LInput.Free;
    LOutput.Free;
    end;


    procedure TForm1.btnDecompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LUnZip: TZDecompressionStream;


    begin
    { Create the Input, Output, and Decompressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(ChangeFileExt(Edit1.Text, 'txt'), fmCreate);
    LUnZip := TZDecompressionStream.Create(LInput);


    { Decompress data. }
    LOutput.CopyFrom(LUnZip, 0);


    { Free the streams. }
    LUnZip.Free;
    LInput.Free;
    LOutput.Free;
    end;
    با سلام
    Untitled.jpg

  5. #5
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294

    نقل قول: کوچک کردن فایل jpg در FileStream

    نقل قول نوشته شده توسط دلفــي مشاهده تاپیک
    از TZCompressionStream و TZDecompressionStream استفاده کن


    procedure TForm1.btnCompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LZip: TZCompressionStream;


    begin
    { Create the Input, Output, and Compressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(Edit2.Text + '.zip', fmCreate);
    LZip := TZCompressionStream.Create(clDefault, LOutput);


    { Compress data. }
    LZip.CopyFrom(LInput, LInput.Size);


    { Free the streams. }
    LZip.Free;
    LInput.Free;
    LOutput.Free;
    end;


    procedure TForm1.btnDecompressClick(Sender: TObject);
    var
    LInput, LOutput: TFileStream;
    LUnZip: TZDecompressionStream;


    begin
    { Create the Input, Output, and Decompressed streams. }
    LInput := TFileStream.Create(Edit1.Text, fmOpenRead);
    LOutput := TFileStream.Create(ChangeFileExt(Edit1.Text, 'txt'), fmCreate);
    LUnZip := TZDecompressionStream.Create(LInput);


    { Decompress data. }
    LOutput.CopyFrom(LUnZip, 0);


    { Free the streams. }
    LUnZip.Free;
    LInput.Free;
    LOutput.Free;
    end;
    مشکل من فشرده سازی نیست! من می خواهم عکس را کوچک کنم. در واقع میخواهم عکس ورودی با هر سایزی را حداکثر 90*60 کنم. تقریبا با کدی که نوشته ام انجام داده ام. اما با این کد اندازه فایل در استریم تغییر نمیکند! ولی وقتی با JPG.SaveToFile('d:\aa.jpg') ذخیره میکنم کوچک شده است!!!!

  6. #6

    نقل قول: کوچک کردن فایل jpg در FileStream

    نقل قول نوشته شده توسط masoode مشاهده تاپیک
    مشکل من فشرده سازی نیست! من می خواهم عکس را کوچک کنم. در واقع میخواهم عکس ورودی با هر سایزی را حداکثر 90*60 کنم. تقریبا با کدی که نوشته ام انجام داده ام. اما با این کد اندازه فایل در استریم تغییر نمیکند! ولی وقتی با JPG.SaveToFile('d:\aa.jpg') ذخیره میکنم کوچک شده است!!!!

    JPG.Assign(BMP);
    JPG.CompressionQuality := 80;
    JPG.Compress;

  7. #7

    نقل قول: کوچک کردن فایل jpg در FileStream

    نقل قول نوشته شده توسط masoode مشاهده تاپیک
    مشکل من فشرده سازی نیست! من می خواهم عکس را کوچک کنم. در واقع میخواهم عکس ورودی با هر سایزی را حداکثر 90*60 کنم. تقریبا با کدی که نوشته ام انجام داده ام. اما با این کد اندازه فایل در استریم تغییر نمیکند! ولی وقتی با JPG.SaveToFile('d:\aa.jpg') ذخیره میکنم کوچک شده است!!!!
    می تونید از توابعی مثل BitBlt استفاده کنید
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

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

  1. سوال: ذخیره و باز کردن فایل های FileStream
    نوشته شده توسط mandagarana در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 26 بهمن 1395, 12:47 عصر
  2. ذخیره با filestream
    نوشته شده توسط h1and1saman در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 3
    آخرین پست: شنبه 15 آبان 1395, 21:08 عصر
  3. سوال: خواندن فایل با fileStream
    نوشته شده توسط vaheeed در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 02 بهمن 1391, 13:08 عصر
  4. FileStream?
    نوشته شده توسط sajjad_kochekian در بخش Access
    پاسخ: 0
    آخرین پست: جمعه 10 تیر 1390, 11:30 صبح
  5. FileStream
    نوشته شده توسط Farhad.B.S در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 10 شهریور 1382, 15:38 عصر

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

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