如何在旋转图像后去除黑色填充背景

时间:2013-05-07 11:18:49

标签: image qt applescript

我是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);
}

2 个答案:

答案 0 :(得分:2)

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

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

EDIT 您可以将下面的脚本保存为应用程序并在其上删除文件...

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

答案 1 :(得分:1)

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

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

你也可以使用ImageMagick:

convert -rotate 270 /tmp/a.png /tmp/b.png