标签: jpeg

1
推荐指数
1
解决办法
1542
查看次数

在Apple的Core Graphics / ImageIO框架中的CGImageDestination中设置JPEG压缩质量时没有效果

我正在编写 IOS 应用程序,需要将 CGImage 保存为 JPEG 文件。控制压缩质量很重要。

我已经编写了下面提供的函数。它有效,因为我得到了一个 JPEG 文件。但无论我设置什么压缩,我总是得到相同的结果。即文件大小始终相同。

谁能告诉我我做错了什么?

void CGImageWriteJPEG(CGImageRef image, NSString *path) {
    NSMutableData * data = [[NSMutableData alloc] init];
    CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)data, kUTTypeJPEG, 1, NULL);

    float compression = .8; // What I put here does not seem to matter...

    CFStringRef myKeys[1];
    CFTypeRef   myValues[1];
    CFDictionaryRef myOptions = NULL;
    myKeys[0] = kCGImageDestinationLossyCompressionQuality;
    myValues[0] = CFNumberCreate(NULL, kCFNumberFloatType, &compression);
    myOptions = CFDictionaryCreate( NULL, (const void **)myKeys, (const void **)myValues, 1,
                               &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);


    CGImageDestinationSetProperties(destination, myOptions);
    CGImageDestinationAddImage(destination, image, nil); …
Run Code Online (Sandbox Code Playgroud)

jpeg core-graphics objective-c ios

1
推荐指数
1
解决办法
2842
查看次数

用 C# 保存 jpeg 图像

我有一个代码:

Image image1 = Image.FromFile(sOriginalImageFileName, true);
....
image1.Save(sNewFileName, image1.RawFormat);
Run Code Online (Sandbox Code Playgroud)

它适用于 png。但是用 Photoshop 打开新的 jpeg 文件,我得到

“无法完成您的请求,因为文件指定了不受支持的 JPEG 精度”

我究竟做错了什么?提前致谢。

c# jpeg image

1
推荐指数
1
解决办法
238
查看次数

如何缩小和优化图像?

我目前jpegoptim在 CentOS 6 上使用。它可以让您设置质量和文件大小基准。但是,它不允许您调整图像大小。

我有 5000 张所有文件大小和尺寸的图像,我想将它们缩小到最大宽度和最大文件大小。

例如,我想将所有图像缩小到最大宽度为 500 像素和 50 KB。

如何缩小和优化所有这些图像?

jpeg centos image jpegoptim

1
推荐指数
1
解决办法
4209
查看次数

Qt:以预期的压缩格式保存图像

我正在使用UIQt项目并保存图像文件QML。以下是我所做的

auto screenshot = quick_item->grabToImage();
screenshot->saveToFile("/somepath/filename.jpeg");
// OR sometimes use like png like
screenshot->saveToFile("/somepath/filename.png");
Run Code Online (Sandbox Code Playgroud)

这在所有平台上都表现得非常好。我打开文件,图像按预期保存。

现在我的问题是:
我刚刚提到.jpeg作为文件扩展名,同时将文件名作为参数提供到saveToFile. 这可行,但是,我是否需要使用它QImageWriter来确保图像实际上以jpeg/png格式压缩?

当它是有损压缩时会发生什么jpeg
如果我想在android中控制有损压缩,我可以做一个,image.compress(CompressFormat.JPEG, 80, stream)其中80是压缩质量的百分比

qt png jpeg image-compression qml

1
推荐指数
1
解决办法
2157
查看次数

Php Imagick:Pdf 转换为 JPG,质量非常差

我在我的项目之一中使用 Imagick 扩展。这对我来说是新的。

以下是我的代码。

                $pdfPath = $config['upload_path'] . '/' . $fileName;
                $im = new imagick();
                $im->setResolution(300, 300);
                $im->readImage($pdfPath);
                $im->setImageFormat('jpeg');
                $im->setImageCompression(imagick::COMPRESSION_JPEG); 
                $im->setImageCompressionQuality(100);
                $im->writeImage($config['upload_path'] . '/' . str_replace('pdf', 'jpeg', $fileName));
                $im->clear();
                $im->destroy();
Run Code Online (Sandbox Code Playgroud)

这使我的图像质量非常差。所有文本都转换为黑色背景。图像也无法正确显示。请参阅下图,该图是从 PDF 转换而来的。 在此输入图像描述 请帮我。

php pdf jpeg imagick

1
推荐指数
1
解决办法
6294
查看次数

OpenCV imread 中的 JPEG 图像内存字节大小似乎不正确

使用 OpenCV,每当我将图像(来自相机流)作为 JPG 保存到磁盘时。磁盘上的文件大小(以字节为单位)根据预期的 JPEG 质量而有所不同。

但是,每当我读取图像时,无论磁盘上的文件大小如何,内存大小都保持不变。这是正常的吗?

此外,图像的磁盘和内存大小似乎存在巨大差异。我期望内存大小要小得多,相对于磁盘大小而言。

例如

import sys
import cv2

cv2.imwrite('temp.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 10])
# disk size of temp.jpg is 24kb

image = cv2.imread('temp.jpg')
# memory size is 2.7 mb

cv2.imwrite('temp.jpg', frame, [int(cv2.IMWRITE_JPEG_QUALITY), 90])
# disk size of temp.jpg is 150kb

image = cv2.imread('temp.jpg')
# memory size is still constant at 2.7 mb
Run Code Online (Sandbox Code Playgroud)

这就是我计算内存大小的方法:

print("Image byte size :", round(sys.getsizeof(image) / (1024 * 1024), 2), "mb")
Run Code Online (Sandbox Code Playgroud)

python jpeg opencv image

1
推荐指数
1
解决办法
3412
查看次数

网站上的 JPF,如何让它正常工作?

我正在尝试使用 pagespeed 优化我的网站,我得到了使用 JPEG2000 而不是普通 JPG 的建议。所以我转换了所有图像,但是当我更改图像时,它不会显示在我的笔记本电脑上。所以我检查了“caniuse”,现在我看到这个扩展只支持手机(android和ios)

那么如何在我的网站中实现这一点呢?如果设备是手机,是否需要使用javascript将扩展名更改为jpf?

我使用基于屏幕大小的图片和 srcset,但是如果我将我的笔记本电脑上的屏幕拖得更小,这将不起作用。有谁知道如何使用这个新的 JPEG2000?

html php jpeg

1
推荐指数
1
解决办法
3054
查看次数

保存由函数matplotlib python生成的绘图

我创建了一个函数,它从数据集中获取一系列值并输出一个图.例如:

my_plot(location_dataset, min_temperature, max_temperature) 将返回函数中指定的温度范围的降水图.

假设我想保存加利福尼亚州60-70F之间温度的情节.因此,我会调用我的功能my_plot(California, 60, 70),当温度在60到70F之间时,我会得到加利福尼亚州的降水情节.

我的问题是:如何保存将函数调用为jpeg格式的图?

我知道什么plt.savefig()时候它不是调用函数的结果,但在我的情况下我该怎么做?

谢谢!

更多细节:这是我的代码(大大简化):

import matplotlib.pyplot as plt

def my_plot(location_dataset, min_temperature, max_temperature):
    condition = (location_dataset['temperature'] > min_temperature) & (dataset['temperature'] <= max_temperature)
    subset = location_dataset[condition] # subset the data based on the temperature range

    x = subset['precipitation'] # takes the precipitation column only
    plt.figure(figsize=(8, 6))
    plt.plot(x)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

所以我把这个函数称为如下:my_plot(California, 60, 70)我得到了60-70温度范围的情节.如何在没有savefig函数定义内部的情况下保存此图(这是因为我需要更改最小和最大温度参数.

python jpeg matplotlib save ipython

0
推荐指数
1
解决办法
5812
查看次数

在Java中将PNG字节数组转换为JPEG字节数组

我不确定我到底在做什么,所以请给出一些建议并原谅我的错误.

我有一个byte[]调用的图像idCardImage,我做了以下操作将其转换为字符串:

String s = new String(idCardImage);
Run Code Online (Sandbox Code Playgroud)

它打印出来像这样:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAEHUlEQVQ4TzWUW49VRRCFv6rq3ufMmTNn....
Run Code Online (Sandbox Code Playgroud)

做了一些在线搜索,似乎这个图像是png基于64编码的格式.

我需要做的是将其转换为jpeg格式,然后将其存储在新的字节数组中.你能就如何用Java做一些建议吗?

java png jpeg image

0
推荐指数
1
解决办法
3730
查看次数

标签 统计

jpeg ×10

image ×4

php ×2

png ×2

python ×2

c# ×1

centos ×1

core-graphics ×1

h.264 ×1

html ×1

image-compression ×1

imagick ×1

ios ×1

ipython ×1

java ×1

jpegoptim ×1

matplotlib ×1

objective-c ×1

opencv ×1

pdf ×1

qml ×1

qt ×1

save ×1

video ×1