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

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

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

    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
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

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

    نقل قول: کوچک کردن فایل 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
    محل زندگی
    اصفهان - ایران
    پست
    315

    نقل قول: کوچک کردن فایل 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
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

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

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

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

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