Delphi 图像比例缩放问题 高手来啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 图像比例缩放问题 高手来啊相关的知识,希望对你有一定的参考价值。

编译器是Delphi 2010程序错误很多啊哪个帮忙改下unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;var
Form1: TForm1;implementation$R *.dfmuses Wincode;procedure TForm1.Button1Click(Sender: TObject);
var
WicImg: TWICImage;
Factory: IWICImagingFactory;
Scaler: IWICBitmapScaler; 图像比例变换接口
begin
WicImg := TWICImage.Create;
WicImg.LoadFromFile('c:\temp\test.jpg');
Factory.CreateBitmapScaler(Scaler); Scaler.Initialize(WicImg.Handle,
WicImg.Width div 2, WicImg.Height div 3,
WICBitmapInterpolationModeFant); WicImg.Handle := IWICBitmap(Scaler);
Canvas.Draw(0, 0, WicImg); Scaler := nil;
Factory := nil;
WicImg.Free;
end;end.

参考技术A 非常简单第一个错误是你的单元引用错误应该是 uses Wincodec;第二个错误是没有对IWI图像进行关联在 Factory.CreateBitmapScaler(Scaler);上面加一句Factory := WicImg.ImagingFactory;

UIScrollView 的最大缩放比例

【中文标题】UIScrollView 的最大缩放比例【英文标题】:Maximum zoom scale of a UIScrollView 【发布时间】:2012-12-30 14:13:49 【问题描述】:

基于Large Image Downsizing iOS sample code,我正在尝试为我的 UIScrollView 设置最大缩放比例,以免图像太大。

我理解 UIScrollView 的 maximumZoomScale 原生属性是指 zoomScale 属性,以便授权放大或不放大。但是,在此示例代码中,图像的比例是使用自定义浮动 imageScale 管理的,并且 UIScrollView 的 zoomScale 属性始终为 1。

我看到,在这个示例代码中,最大缩放比例是使用这种方法管理的:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale 
    imageScale *=scale;
    if( imageScale < maximumScale ) imageScale = minimumScale; // THIS IS THE LINE WHO AVOID TO ZOOM TOO MUCH BUT IT MAKES A REALLY UGLY BEHAVIOUR

    CGRect imageRect = CGRectMake(0.0f,0.0f,CGImageGetWidth(image.CGImage) * imageScale,CGImageGetHeight(image.CGImage) * imageScale);
    // Create a new TiledImageView based on new frame and scaling.
    frontTiledView = [[TiledImageView alloc] initWithFrame:imageRect image:image scale:imageScale]; 
    [self addSubview:frontTiledView];
    [frontTiledView release];

所以我希望找到一种与 UIScrollView 本机具有相同行为的解决方案。 每次我在代码中更改它时,我都尝试将 zoomScale 设置为 imageScale 的值,但它会对图像产生奇怪的行为,因此我无法使用此方法。

所以,我的问题是:

有没有办法告诉 UIScrollView 它必须像 zoomScale 值一样采用 imageScale ? (可能会覆盖原生方法) 还有其他方法可以将比例限制为最大值吗? 有没有办法定义最大尺寸而不是最大比例?

非常感谢!

【问题讨论】:

【参考方案1】:

我觉得我走的很好!这段代码解决了我的问题!

if (imageScale > delegateAppli.params.zoomLevelAuthorized) self.maximumZoomScale = 1.0;
else self.maximumZoomScale = 1 + delegateAppli.params.zoomLevelAuthorized - imageScale;

希望我的回答能帮助到其他人...

【讨论】:

以上是关于Delphi 图像比例缩放问题 高手来啊的主要内容,如果未能解决你的问题,请参考以下文章

如何用DELPHI对JPG等图像进行缩放?

求高手用MATLAB对图片进行缩放

如何缩放和居中图像并使图像之间的空间成比例

如何在固定大小的表格单元格内按比例缩放图像

CSS背景图像以适应宽度,高度应按比例自动缩放

CSS背景图像以适应宽度,高度应按比例自动缩放