Graphics::TBitmap* Bmap = new Graphics::TBitmap;
AnsiString fileName = PathFolder;//путь к фото
auto_ptr<TMemoryStream> stream(new TMemoryStream());
auto_ptr<TJPEGImage> jpeg (new TJPEGImage());
jpeg->LoadFromFile(fileName);
Bmap->Width = jpeg->Width / FotoWidth;
Bmap->Height = jpeg->Height / FotoWidth;
Bmap->Canvas->StretchDraw(Bmap->Canvas->ClipRect, jpeg.get());
jpeg->Assign(Bmap);
stream->Position=0;
jpeg->SaveToStream(stream.get());
//далее код
Посчитать пропорции, изображения
Код:
FotoWidth это число пропорционального уменьшения фотографии.
Пользователь хочет задавать ширину и высоту картинки в пикселях и чтобы была галочка пропорционального изменения размера. Например, пользователь выставил ширину, тогда пропорционально уменшилась и высота (как в графических редакторах). По какой формуле это сделать?
Bmap->Width = пользователь задал ширину
Bmap->Height = как пропорционально вычислить высоту?
ratio= отношение исходного размера картинки (ширины или высоты) к тому рамеру, который хочет пользователь (то есть это число раз, в которое уменьшается картинка) то есть
ratio = width / newwidth;
тогда:
newheight = height / ratio;
или
newheight = height*newwidth / width;