0

我是 Qt 的新手。我正在研究图像的旋转。就我而言,旋转工作正常,但旋转后出现黑色填充背景。我想删除或隐藏那个黑色背景。

我正在研究 MAC。所以我正在使用“Imageevent”applescript。我的脚本是这样的:告诉应用程序“图像事件”。

launch
 set this_image to open this_file
 rotate this_image to angle 270
 save this_image with icon
 close this_image
 end tell

除了这个脚本,我还尝试了这个 Qt 代码来旋转图像:

void MyWidget::rotateLabel()
{
    QPixmap pixmap(*my_label->pixmap());
    QMatrix rm;
    rm.rotate(90);
    pixmap = pixmap.transformed(rm);
    my_label->setPixmap(pixmap);
}
4

2 回答 2

2

您还可以使用指定的颜色填充图像...

set myFile to "/Users/JD/Desktop/test.png"
do shell script "sips -r 270 " & quoted form of myFile & " --padColor FFFFFF -i"

编辑您可以将下面的脚本保存为应用程序并在其上放置文件...

on open of theFiles
    repeat with aFile in theFiles
        set filePath to quoted form of (aFile's POSIX path)
        do shell script "sips -r 270 " & filePath & " --padColor FFFFFF -i"
    end repeat
end open
于 2013-05-07T17:40:07.273 回答
1

sips 似乎至少在 PNG 文件中保持透明背景:

sips -r 270 /tmp/a.png -o /tmp/b.png

你也可以使用 ImageMagick:

convert -rotate 270 /tmp/a.png /tmp/b.png
于 2013-05-07T15:54:43.120 回答