تحويل الصورة ل ابيض واسود
#4
حجم الصورة لا يتغير بتحويلها الى أبيض و أسود !!
السبب : عدد البيكسل يبقى ثابت .. ستتغير قيمة البيكسل فقط لكن عدد البيكسل قبل التحويل = عدد البيكسل بعد التحويل => حجم ثابت .
يمكن تحويل ال Bmp الى صورة jpg ثم الى bmp مرة أخرى :
ستحصل على حجم صغير مقارنة بالصورة الأولى بدون تحويلها للأسود و الأبيض .

PHP كود :
procedure ImageGrayScale(var AnImage: TImage);
var
  
JPGImage: TJPEGImage;
  
BMPImage: TBitmap;
  
MemStream: TMemoryStream;
begin
  BMPImage 
:= TBitmap.Create;

  
BMPImage.Width := AnImage.Picture.Bitmap.Width;
  
BMPImage.Height := AnImage.Picture.Bitmap.Height;

  
JPGImage := TJPEGImage.Create;
  
//Size (AnImage.Picture.Bitmap ) = 60 ko
  
JPGImage.Assign(AnImage.Picture.Bitmap);
  
JPGImage.CompressionQuality := 100;
  
JPGImage.Compress;
//  JPGImage.Grayscale := True;
  
BMPImage.Assign(JPGImage);

  
// BMPImage.Canvas.Draw(0, 0, JPGImage);

  
{ dont use Canvas.Draw
    
Use BMPImage.Assign
  
}
  
BMPImage.SaveToFile('foo.bmp'); //Size = 24 ko !!

  
AnImage.Picture.Graphic := BMPImage;
  
JPGImage.Free;
  
BMPImage.Free;
end; 
Open Your Source .. Open Your Mind
الرد


الردود في هذا الموضوع
تحويل الصورة ل ابيض واسود - بواسطة sa7er100 - 13-08-2013, 10:52 PM
تحويل الصورة ل ابيض واسود - بواسطة SMP3 - 13-08-2013, 11:37 PM
تحويل الصورة ل ابيض واسود - بواسطة sa7er100 - 14-08-2013, 01:15 AM
تحويل الصورة ل ابيض واسود - بواسطة SMP3 - 14-08-2013, 01:53 AM
تحويل الصورة ل ابيض واسود - بواسطة sa7er100 - 14-08-2013, 12:44 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم