public override object Clone() { CrotateStageOperationParameters target = new CrotateStageOperationParameters(); CopyDataTo(target); return(target); }
public override void CopyDataTo(StageOperationParameters target) { base.CopyDataTo(target); CrotateStageOperationParameters t = (CrotateStageOperationParameters)target; t.mAngle = mAngle; t.mAspectRatio = mAspectRatio; t.mAspectRatioCustom = mAspectRatioCustom; t.mAspectRatioPreset = mAspectRatioPreset; t.mCenter = mCenter; t.mCropWidth = mCropWidth; t.mCropHeight = mCropHeight; t.mMode = mMode; t.OnChanged(); }
size TrueSize(IBitmapCore hdp) { CrotateStageOperationParameters pm = (CrotateStageOperationParameters)Parameters; int trueWidth = hdp.Width, trueHeight = hdp.Height; double w1, h1; w1 = pm.CropWidth * hdp.Width; h1 = pm.CropHeight * hdp.Height; double asp_rat; if (pm.AspectRatioCustom) { asp_rat = pm.AspectRatio; } else { asp_rat = pm.PresetAspectRatioValues[pm.AspectRatioPreset]; } switch (pm.Mode) { case Mode.Disproportional: trueWidth = (int)w1; trueHeight = (int)h1; break; case Mode.ProportionalWidthFixed: trueWidth = (int)w1; trueHeight = (int)(w1 / asp_rat); break; case Mode.ProportionalHeightFixed: trueWidth = (int)(h1 * asp_rat); trueHeight = (int)h1; break; } size res = new size(); res.width = trueWidth; res.height = trueHeight; return(res); }
public override void OnDo(IBitmapCore hdp) { Console.WriteLine("Rotating..."); size trueSize = TrueSize(hdp); int trueWidth = trueSize.width, trueHeight = trueSize.height; CrotateStageOperationParameters pm = (CrotateStageOperationParameters)Parameters; Point c_pix = new Point(pm.Center.X * hdp.Width, pm.Center.Y * hdp.Height); // Calculating new picture's real dimensions hdp.Crotate(pm.Angle, c_pix, trueWidth, trueHeight, quality, delegate(double progress) { return(OnReportProgress(progress)); } ); }
public override object Clone() { CrotateStageOperationParameters target = new CrotateStageOperationParameters(); CopyDataTo(target); return target; }